когда консольный журнал объекта массива, который был обратным, и присоединение, которое возвращает письмо - PullRequest
0 голосов
/ 26 мая 2019

У меня есть массив с 2 объектами, и когда я обращаюсь к нему, присоединяюсь к этому массиву и утешаемому журналу с первым или вторым индексом, которые возвращают буквы типа 'j', 'b'

list = [{
    name: 'anne',
    age: 20,
    gender: 'F'
  },
  {
    name: 'david',
    age: 50,
    gender: 'M'
  },
  {
    name: 'mark',
    age: 33,
    gender: 'M'
  },
]

var val = this.list.slice().reverse().join('');

console.log('val ==> ', val[2]) // val ==>  b

что это за б?

1 Ответ

2 голосов
/ 26 мая 2019

Поскольку вы используете join(""), это вызывает метод toString для каждого элемента в массиве - они оказываются объектами, а метод toString объекта возвращает [object Object]:

let obj = {};
console.log(obj.toString());

Эту проблему можно избежать, сопоставив сначала JSON.stringify.

var list = [{name:'anne',age:20,gender:'F'},{name:'david',age:50,gender:'M'},{name:'mark',age:33,gender:'M'}];
const res = this.list.slice().reverse().map(JSON.stringify).join('');
console.log("res[2] ===> ", res[2]); //Returns "n" because {"n are the first three characters in the string
console.log(res);
.as-console-wrapper { max-height: 100% !important; top: auto; }

Обратите внимание, что выше все еще возвращает символ.Если вы хотите получить объект, удалите join и map:

var list = [{name:'anne',age:20,gender:'F'},{name:'david',age:50,gender:'M'},{name:'mark',age:33,gender:'M'}];
const res = this.list.slice().reverse();
console.log("res[2] ===> ", res[2]); //Returns "n" because {"n are the first three characters in the string
console.log(res);
.as-console-wrapper { max-height: 100% !important; top: auto; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...