Прежде чем я начну здесь, я работал с объектами и массивами в PHP и других языках. Я использую VueJS в эти дни и всегда путаюсь в том, где использовать массив или объект или преобразовать объект в массив или преобразовать массив в объект. Это всегда дилемма, если вы начинаете работать с javascript.

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

Вот некоторые из них, и я буду продолжать обновлять их в качестве сценариев использования.

Как проверить, является ли ваша переменная объектом?

Чтобы проверить, является ли переменная объектом:

const foo = { test: [{name: ‘foo’}, { name: ‘bar’ }]}
console.log(foo.constructor.name)
//Output:
// "Object"

Вы можете создать метод для быстрой проверки:
он будет возвращать true или false в зависимости от вашего объекта.

function isObject(obj){
    return (obj.constructor.name === 'Object')
}

Как проверить, является ли ваша переменная массивом?

Теперь вы можете обрабатывать массив аналогичным образом:

const foo = [{name: 'foo'}, { name: 'bar' }]
console.log(foo.constructor.name)
console.log(Array.isArray(foo))
//Output:
// "Array"
// true

Чтобы проверить массив, вы можете либо использовать конструктор.имя, либо просто использовать Array.isArray, в зависимости от того, с чем вам удобно работать. Я всегда использую Array.isArray, так как он напрямую возвращает результат в одной строке.

Вы даже можете создать служебный метод, подобный этому:

function isArray(arr){
    return Array.isArray(arr)
}

Здесь я попытался описать простой способ, поскольку существует множество способов работы с механизмом проверки. Теперь давайте перейдем к преобразованию массива в объект или объекта в массивы.

Как преобразовать объект в массив?

Давайте возьмем тот же пример объекта, что и выше, и попробуем преобразовать его в массив:

const foo = { test: [{name: 'foo'}, { name: 'bar' }]}
console.log(Object.entries(foo))
console.log(Object.keys(foo))
console.log(Object.values(foo))
//Output:
// [["test", [{name: "foo"}, {name: "bar"}]]]
// ["test"]
// [[{  name: "foo"}, {name: "bar"}]]

Object.entries(foo):
методы Object.entries() преобразуют объект в массив с однострочным кодом.

Object.keys(foo):
методы Object.keys() преобразуют ключи объекта в массив, если вам нужны только ключи объекта в виде массива.

Object.values(foo):
методы Object.keys() преобразуют значения объекта в массив, если вам нужны только значения объекта в виде массива.

Как преобразовать объект в массив?

Давайте возьмем тот же пример объекта, что и выше, и попробуем преобразовать его в массив:

const foo =  [{name: 'foo'}, { name: 'bar' }]
let obj1 = Object.assign({}, foo)
let obj2 = {...foo}
console.log(obj1)
console.log(obj2)
//Output:
// { 0: { name: "foo" }, 1: { name: "bar" } } 
// { 0: { name: "foo" }, 1: { name: "bar" } }

Object.assign({}, foo):
Object.assign(target, source) помогает преобразовать массив в объект.

{…foo}
{…array} — это оператор расширения, который напрямую преобразует массив в объект.

Вы можете использовать то, что вам удобно.

Как перебрать объект?

Чтобы перебирать объект, вы можете легко использовать цикл for:

const foo = { 'test': [{name: 'foo'}, { name: 'bar' }] }
for (const prop in foo) {
  console.log(prop)
  console.log(foo[prop])
}
//Output:
// "test"
// [{name: "foo"}, {name: "bar"}]

Как перебрать массив?

Чтобы перебрать массив, вы можете легко использовать цикл forEach.

const foo =  [{name: 'foo'}, { name: 'bar' }]
foo.forEach(function(item, index){
 console.log(index);
 console.log(item);
  console.log(item['name']);
})
//Output:
// 0
// {name: "foo"}
// "foo"
// 1
// {name: "bar"}
// "bar"

Я попытался охватить все основы работы с массивами и объектами. Я постараюсь добавить другие методы, такие как map(), reduce(), filter() или советы, если я их найду. Если хотите добавить еще, то пишите в комментариях.