vfccbds

7 лайфхаков для работы с массиваами

Наши соц. сети: instagram, fb, tg

1.Удалить дубликаты из массива

Вопросы такого типа часто встречаются на собеседованиях. Чтобы удалить дубликаты из массива мы можем использовать Set и from.


let fruits = [“banana”, “orange”, “watermelon”, “apple”, “orange”, “grape”, “apple”];

let uniqueFruits = Array.from(new Set(fruits));

console.log(uniqueFruits); // [“banana”, “apple”, “orange”, “watermelon”, “grape”]

Есть еще один способ решить эту задачу - с помощью оператора распространения (…).

let uniqueFruits2 = […new Set(fruits)];

console.log(uniqueFruits2); // [“banana”, “apple”, “orange”, “watermelon”, “grape”]


2.Отображение массива без map

Наверное, каждый знает метод map, но есть другое решение, которое можно использовать для получения аналогичного эффекта и очень чистого кода. Для этого мы можем использовать метод from():


let friends = [
    { name: ‘John’, age: 22 },
    { name: ‘Peter’, age: 23 },
    { name: ‘Mark’, age: 24 },
    { name: ‘Maria’, age: 22 },
    { name: ‘Monica’, age: 21 },
    { name: ‘Martha’, age: 19 },
]


let friendsNames = Array.from(friends, ({name}) => name);
console.log(friendsNames); //  [“John”, “Peter”, “Mark”, “Maria”, “Monica”, “Martha”]

3.Удаление всех элементов массива

У вас есть массив, полный элементов, но вам нужно очистить его для каких-либо целей, и вы не хотите удалять элементы один за другим? Сделать это одной строкой кода очень просто. Чтобы очистить массив, нужно установить длину массива равной 0, и все!


let fruits = [“banana”, “apple”, “orange”, “watermelon”, “orange”, “grape”, “apple”];

fruits.length = 0;

console.log(fruits); // []


4.Преобразование массива в объект

Бывает, что у нас есть массив, но для некоторых целей нам нужен объект с этими данными, и самый быстрый способ преобразовать массив в объект - использовать хорошо известный оператор распространения (…).


let fruits = [“banana”, “apple”, “orange”, “watermelon”];

let fruitsObj = { …fruits };

console.log(fruitsObj); // {0: “banana”, 1: “apple”, 2: “orange”, 3: “watermelon”, 4: “apple”, 5: “orange”, 6: “grape”, 7: “apple”}


5. Заполнение массива данными

Бывают ситуации, когда мы создаем массив и хотим заполнить его некоторыми данными, или нам нужен массив с такими же значениями, и в этом случае метод fill() предлагает простое и понятное решение.


let newArray = new Array(10).fill(“1”);

console.log(newArray); // [“1”, “1”, “1”, “1”, “1”, “1”, “1”, “1”, “1”, “1”, “1”]


6. Объединение массивов

Еще один вопрос, который часто встречается на собеседованиях - это объединение массивов без использования concat(). Существует простой способ объединить любое количество массивов в один в одной строке кода. Как вы, наверное, уже догадались, оператор распространения (…) очень полезен при работе с массивами, и в этом случае он то же самое.


let fruits = [“apple”, “banana”, “orange”];

let meat = [“poultry”, “beef”, “fish”];

let vegetables = [“potato”, “tomato”, “cucumber”];

let food = […fruits, …meat, …vegetables];

console.log(food); // [“apple”, “banana”, “orange”, “poultry”, “beef”, “fish”, “potato”, “tomato”, “cucumber”]


7. Найти пересечение двух массивов

Это также одна из самых частых задач, с которыми вы можете столкнуться на любом собеседовании по Javascript, потому что она показывает, можете ли вы использовать методы массива и какова ваша логика. Чтобы убедиться, что значения в массиве, который мы проверяем, не дублируются, и мы будем использовать метод filter и метод includes. В результате мы получим массив со значениями, которые были представлены в обоих массивах.


let numOne = [0, 2, 4, 6, 8, 8];

let numTwo = [1, 2, 3, 4, 5, 6];

let duplicatedValues = […new Set(numOne)].filter(item => numTwo.includes(item));

console.log(duplicatedValues); // [2, 4, 6]


Приятного кодинга!