2015-11-20 4 views
1

Я два массиваПолучить индекс элемента в массиве разности

var valid = ["a", "b"]; 
var different = ["a", "c", "b"]; 

Что является лучшим способом, чтобы выяснить позицию элемента разного? Только один элемент может быть другим.

В этом случае разные массивы изменяются только одним элементом, и мне нужен индекс() другого массива.

+0

Петля и индекс? Или цикл и сравнение? Несколько способов сделать это. – epascarello

+0

Мне нужен индекс элемента, различного во втором массиве (в этом случае именованный по-разному) – Davide

ответ

1

Существует несколько способов сделать это. Например, вы можете перебирать массив valid, и когда значения не совпадают, вы знаете значение index различного значения. В этом случае это 1.

Example Here

var valid = ["a", "b"]; 
var different = ["a", "c", "b"]; 

valid.forEach(function (value, i) { 
    if (value !== different[i]) { 
    console.log(i); // 1 
    } 
}); 
+0

Мне это нужно без forEach, потому что async и я не могу выйти из цикла – Davide

0

Возвращает индекс отличающегося значения:

var valid = ['a', 'b']; 
 
var different = ['a', 'c', 'b']; 
 

 
var diffIndex = valid.findIndex(function (value, index) { 
 
    return value !== different[index]; 
 
}); 
 

 
alert('Array differs at index: ' + diffIndex);

Обратите внимание, что findIndex является частью стандарта ES2015.

Смежные вопросы