Сравнение значений ключей объектов массива
Приветствую.
Подскажите, как проверить каждое значение?
let client = []
let sameClient = []
client[0] = {
name: "John",
age: "25"
}
client[1] = {
name: "John",
age: "25"
}
client[2] = {
name: "Tom",
age: "30"
}
client[3] = {
name: "Tom",
age: "42"
}
for(let i = 0; i < client.length; i++){
если имена и возрасты объектов равны, то
sameClient.push(client[i].name, client[i].age)
}
|
Цитата:
В первом берешь элемент... А во втором перебираешь остальные и сравниваешь. |
Цитата:
|
Интересно откуда они вообще появились.
|
а можно оба варианта в качестве примера?
за один, это через reduce? и ещё, подскажите что не так делаю. я привёл пример массива, но у меня не получается именно такой сделать. Есть такая функция:
let clients = []
let index = 0;
for (let key of this.data) {
clients[index] = {
name: name,
age: age
}
index++
}
[ { name: 'John', age: '25' } ]
[ { name: 'John', age: '25' } ]
[ { name: 'Tom', age: '30' } ]
[ { name: 'Tom', age: '42' } ]
Не понимаю, почему получается 4 массива, а не один с 4 объектами. Как привести к нужному виду? Или такой циклом перебрать. |
Цитата:
|
Цитата:
|
Цитата:
|
поиск объектов с одинаковой структурой
yozuul,
const clients = [
{ name: 'John', age: '25' },
{ name: 'John', age: '25' },
{ name: 'Tom', age: '30' },
{ name: 'Tom', age: '42' } ], temp = {}, sameClient = [];
clients.forEach(({name, age}) => {temp[[name, age]] = (temp[[name, age]] || 0) + 1;temp[[name, age]] == 2 && sameClient.push({name, age})})
console.table(sameClient)
|
рони,
Ого. А как это вообще работает? temp[[name, age]] = (temp[[name, age]] || 0) + 1 Что это? |
| Часовой пояс GMT +3, время: 16:08. |