У меня есть многомерный массив, как показано ниже:
[
["1","success","5"],
["2","success","5"],
["3","success","5"],
["4","fail","5"],
["5","fail;","5"],
["6","fail","5"],
["7","success","5"],
["8","fail","5"],
];
мне нужно выбрать определенные строки на основе типа success и fail. что означает, что для eaxmple мне нужно получить только данные, второй столбец которых назван success
Я написал код, но он дает мне значения в отдельных массивах. Я хочу данные в этом формате
[
["1","success","5"],
["2","success","5"],
["3","success","5"],
["7","success","5"],
]
Код, который я пробовал, выглядит следующим образом:
var success = [];
for(var i=0;i<arr.length;i++)
{
if (arr[i][1] =='success')
{
success = [arr[i]];
console.info(success);
}
}
Я хочу, чтобы все данные были в одном массиве. Вот ссылка на Fiddle, которую я пробовал: https://jsfiddle.net/abnitchauhan/09zchjak/
Я думаю, что могу помочь вам решить вашу проблему, сэр, как обсудить, сэр?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать метод фильтра массива.
const data = [
['1', 'success', '5'],
['2', 'success', '5'],
['3', 'success', '5'],
['4', 'fail', '5'],
['5', 'fail;', '5'],
['6', 'fail', '5'],
['7', 'success', '5'],
['8', 'fail', '5'],
];
const success = data.filter((x) => x[1] === 'success');
console.info(success);
Проблема с вашим кодом в том, что вы заменяете значение в
successпри каждом совпадении. Вместо этого вы хотите добавить к нему:success.push(arr[i]). (Но, как говорится в ответе ниже,filterпредназначен для этой конкретной цели.)