Методы массива Javascript могут быть немного сложными, особенно если вы имеете дело с глубоко вложенными массивами с объектами и массивами внутри массивов. Мне приходилось много манипулировать данными с массивами и объектами на моей текущей работе, потому что в большинстве случаев структура данных, полученная из серверной части, должна быть распакована, чтобы ее можно было использовать во внешнем интерфейсе.
Наиболее распространенные методы массива, которые я использую, — это метод filter, map и find. Для этого руководства сценарий предоставляет нам 2 массива. Массив строк, который содержит подмножество большей части массива объектов. Нам необходимо преобразовать массив строк в массив объектов со строками, сопоставленными с правильными значениями, полученными из массива объектов.
Я знаю, я знаю, это звучит немного сложно, но это станет яснее, когда я объясню вам это шаг за шагом.
Вот фрагмент кода для реализации этой функциональности.
const arrayOfObject = [ { item: "A",value:1 }, { item: "B",value:2 }, { item: "C",value:3 }, { item: "D",value:4 }, { item: "E",value:5 }, { item: "F",value:6 }, { item: "G",value:7 }, { item: "H",value:8 }, ]; const arrayOfString=['G','F','C'] const newList = arrayOfObject ?.filter((item) => arrayOfString?.some((str) => item.item === str) ) .map(({item,value}) => ({item,value}));
Приведенный выше код сначала фильтрует массив объектов, метод filter отображает массив и использует логическое вычисление, которое возвращает true или false, чтобы перебрать массив и найти только те элементы в массиве, которые удовлетворяют условию.
В этом случае вычисление, которое возвращает логическое значение, на самом деле является другим методом массива, называемым «some». Метод массива some перебирает заданный массив и возвращает true, когда находит элемент, для которого предоставленная функция возвращает true. В этом случае метод some перебирает наш массив строк и проверяет, совпадает ли строка с текущим элементом цикла с ключом «item» в массиве объекта, если он возвращает true, он остается в массиве, и если он возвращает false, затем он отфильтровывается из массива.
Последний метод — это метод карты. Метод карты будет перебирать массив, возвращенный методом фильтра, а затем изменять его в зависимости от желаемой структуры. В этом случае мы хотим вернуть массив объектов с ключевым именем элемента, совпадающим с нашей строкой, и другим ключом, называемым значением, которое соответствует соответствующему значению массива объектов.
Вот вам ребята!!! Мы только что использовали 3 метода массива, чтобы перебрать 2 массива и вернуть измененный массив.