#javascript #node.js
#javascript #node.js
Вопрос:
Итак, допустим, у меня есть массив, который выглядит примерно так
[ [ -1, -1, 7, -1 , -1 ], [ -1, 7, -1, 7, -1], [-1, 7, -1, 7, -1], [-1, 7, -1, 7, 7]]
Количество встроенных массивов всегда может быть разным (0-n), и количество значений, содержащихся в каждом массиве, также может быть разным. Каков наилучший способ поиска всех значений в индексе массива 0, затем 1 и так далее?
Я знаю, что мог бы выполнить некоторые встроенные циклы for и while для достижения этой цели, просто не уверен, есть ли более чистый или простой способ выполнить эту задачу
Редактировать: добавлена более длинная строка массива для уточнения. В приведенном выше примере я надеюсь найти способ вывести, что во всех массивах с индексом 0 есть общее значение
Редактировать 2: в основном ищу способ сократить это или лучший способ выполнить это
newArray = [];
output = [];
for(x = 0; x < array_inner[0].length; x ){
for(i = 0; i < array_list.length; i ){
newArray[x].push(array_inner[x])
}}
const allEqual = arr => arr.every(val => val === arr[0]);
for(p = 0; = p < newArray.length; p ){
var result = allEqual(newArray[p])
output.push(result)
}
Комментарии:
1. Будет ли массив только на два уровня глубиной? И вы хотите изменить массив или просто перебирать каждый элемент?
2. Да, это правильно
3. вы хотите проверить, существует ли определенное значение в этих массивах?
4. у вас есть больший пример и желаемый результат?
5. Просто отредактировано, чтобы, надеюсь, добавить больше разъяснений
Ответ №1:
вы ищете что-то подобное?
const arrays=[ [ -1, -1, 7 ], [ -1, 7, -1,2 ],[-1,7,1],[1,5,9,9] ]
const valueToSearch=7
let index= 0
let indexesOutput= arrays.reduce((a,c)=> {
console.log( c.filter(n=>n==-1))
return [...arrays[index ]]
} ,[])
Комментарии:
1. Вроде того, за исключением того, что я ищу любые значения в N массивах, которые равны. Итак, в этом примере. Я хотел бы выяснить, что оба массива имеют индекс 0 при -1. [ [ -1, -1, 7 ], [ -1, 7, -1 ] ]