Как проверить наличие массива в объекте Javascript - PullRequest
0 голосов
/ 10 июня 2019

Я хочу выяснить, присутствует ли массив в объекте JavaScript.

Пустой пример:

Учитывая объект Javascript, содержащий массив.и мы не знаем, присутствует ли массив в объекте.

var dummyObject = { 
backgroundcolor: '#000',
 color: '#fff',
 arr: ['1','2','3','4','5','6']
};

Теперь я хочу проверить, есть ли массив в этом объекте и есть ли печать всех элементов этого массива.

В настоящее время я нахожусь на одном решении, т.е. перебирать каждый ключ и проверять каждый из них, есть ли в нем массив, используя Array.isArray (key).

Любая помощь будет полезна.

Ответы [ 2 ]

2 голосов
/ 10 июня 2019

Использование Array.isArray - правильный метод для этого.Итерация по каждому ключу также довольно проста.Затем, когда вы найдете предмет, просто войдите в консоль:

var dummyObject = {
  backgroundcolor: '#000',
  color: '#fff',
  arr: ['1', '2', '3', '4', '5', '6']
};

const arr = Object.entries(dummyObject).find(([, v]) => Array.isArray(v));
if (arr) console.log(arr[1]);
.as-console-wrapper { max-height: 100% !important; top: auto; }

Вы можете использовать some с Object.values, если вы просто хотите, чтобы логическое значение определяло, существует ли массив внутри объекта:

var dummyObject = {
  backgroundcolor: '#000',
  color: '#fff',
  arr: ['1', '2', '3', '4', '5', '6']
};

const arrInObj = Object.values(dummyObject).some(e => Array.isArray(e));
console.log(arrInObj);

И если вы хотите, вы можете избежать использования Array.isArray и проверить вместо этого наличие свойства map ( по коду гольфа ):

var dummyObject = {
  backgroundcolor: '#000',
  color: '#fff',
  arr: ['1', '2', '3', '4', '5', '6']
};

const arrInObj = Object.values(dummyObject).some(({ map }) => map);
console.log(arrInObj);
0 голосов
/ 10 июня 2019
if (dummyObject.arr){
console.log('arr is present')
}else{
console.log('arr is not present')
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...