Сравнение значений ключей объектов массива
Приветствую.
Подскажите, как проверить каждое значение? 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, время: 23:02. |