Как я могу получить одно значение среди объектов с повторяющимися значениями? - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть массив:

list=[{ id:1, title:aaa, day:"mon"}, { id:2, title:bbb, day:"mon"}]

Я хочу получить только одно слово "mon" из этой договоренности. Я пробовал вот так

console.log(props.list.day);

, но результат был неопределенным. как я могу получить его с помощью JavaScript?

Ответы [ 3 ]

1 голос
/ 03 ноября 2019
let list=[{ id:1, title:'aaa', day:"mon"}, { id:2, title:'bbb', day:"mon"}]

console.log(list[0].day);
console.log(list[1].day);

// all day in an array

const arr = list.map(a=>a.day)
console.log(arr)
0 голосов
/ 03 ноября 2019

Вы можете .map() ваш массив объектов в массив дней, а затем поместить этот массив в Set, чтобы удалить дубликаты. Наконец, вы можете использовать Array.from() для извлечения уникальных значений из вашего набора в виде массива:

const list = [{id:1, title:'aaa', day:"mon"}, {id:2, title:'bbb', day:"mon"}, {id:3, title:'ccc', day:"tue"}];

const unique_days = Array.from(new Set(list.map(({day}) => day)));
console.log(unique_days);
0 голосов
/ 03 ноября 2019

Для доступа к дню первого элемента:

console.log(this.props.list[0].day);

Но учтите, что, как я уже сказал, он получит доступ к первому объекту в массиве. Если вы хотите учесть все остальные элементы, вы можете сохранить их в другом массиве. Как то так:

let list=[{ id:1, title:'aaa', day:'mon'}, { id:2, title:'bbb', day:'mon'}]

// store all 'days' inside an array
let days = []
list.forEach(ele => {
    days.push(ele.day)
})

console.log(days) // [ "mon", "mon" ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...