Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как решит следующую задачу с перебром объекта? (https://javascript.ru/forum/dom-window/77879-kak-reshit-sleduyushhuyu-zadachu-s-perebrom-obekta.html)

s24344 28.06.2019 08:07

Как решит следующую задачу с перебром объекта?
 
Ребята, подскажите, пожалуйста, как решить следующую задачу?
Есть следующий объект:
const obj = {
    name: 'value',
    users: [
        {
            name: 'value',
        }
    ],
    v: {
        d: {
            l: [
                {
                    name: 'value'
                }
            ]
        }
    }
}

Необходимо вывести все значения name и количество раз, сколько это свойство встречается.

рони 28.06.2019 10:28

обьект, поиск значений по ключу
 
s24344,
const obj = {
    name: 'value',
    users: [
        {
            name: 'value',
        }
    ],
    v: {
        d: {
            l: [
                {
                    name: 'value'
                }
            ]
        }
    }
}
function keySeek(obj, keyName) {
  let dataArr = [];
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      if(key == keyName) dataArr.push(obj[key]);
      else if ("object"===typeof obj[key] && obj[key] !== null)
      dataArr = [...dataArr, ...keySeek(obj[key], keyName)];
    }
  }
 return dataArr;
}
console.log(keySeek(obj, "name"))

s24344 29.06.2019 13:42

Спасибо.


Часовой пояс GMT +3, время: 11:47.