#javascript #arrays
#javascript #массивы
Вопрос:
Я хочу сравнить 2 массива и проверить, является ли значение 3 заданных индексов общим для 2 массивов. т.е.:
arr1 = [1,2,1,0,0,0,2,2,2]
arr2 = [0,0,0,0,0,0,2,2,2]
или
arr1 = [1,2,3,0,1,2,4,2,1]
arr2 = [1,0,0,0,1,0,0,0,1]
1-й пример здесь последние 3 индекса являются общими.
2-й пример здесь индекс 0,4,8 является общим.
есть ли какой-либо метод, который может принимать 2 массива и возвращать true, если индексы совпадают?
Комментарии:
1. Встроенного метода нет. Создайте функцию javascript, которая просматривает массив и проверяет значение по каждому индексу.
2. Если вы хотите вернуть true / false на основе результата сопоставления, попробуйте
const data = arr1.map((item, i) => item > 0 amp;amp; arr2[i] === item ? true : false );
, например: codepen.io/Maniraj_Murugan/pen/BawNvbX
Ответ №1:
Это очень просто
const equal = (a1, a2, ...indexes) => indexes.every(i => a1[i] === a2[i]);
Что я здесь делаю, так это объявляю функцию, которая принимает первый массив в качестве первого аргумента, а второй массив в качестве вторых параметров, теперь третий аргумент в основном группирует все остальные параметры.
Вы бы вызвали эту функцию следующим образом:
equal([0, 2, 4, 6], [0, 1, 3, 6], 0, 3);
И это вернет true
Комментарии:
1. Пожалуйста, не публикуйте ответ на вопрос, если пользователь ничего не пытался.
Ответ №2:
Что-то вроде этого:
const arr1 = [1,2,3,0,1,2,4,2,1]
const arr2 = [1,0,0,0,1,0,0,0,1]
const indexes = arr1.reduce((accumulator, current, index) => {
if (arr2[index] === current) {
accumulator.push(index)
}
return accumulator
}, [])
console.log(indexes)
// Outputs : [0,3,4,8]
Комментарии:
1. Пожалуйста, не публикуйте ответ на вопрос, если пользователь ничего не пытался.