есть ли функция для сравнения значений массивов и извлечения индексных номеров совпадений?


есть ли функция для сравнения значений массивов и извлечения индексных номеров совпадений?

24.10.2020 10:51:38 Просмотров 5 Источник

У меня есть два массива строк и я хочу сравнить их по значению и извлечь индексные номера идентичных элементов mainArray, которые доступны, например, в secondArray:

var mainArray = ["I", "am", "not", "a", "doctor"]
var secondArray = ["am", "doctor"]

var Result = [1,4]
У вопроса есть решение - Посмотреть?

Ответы - есть ли функция для сравнения значений массивов и извлечения индексных номеров совпадений? / is there a function to compare values of the arrays and extract the index numbers of matches?

Является ответом!
Sina

24.10.2020 11:31:41

Вы можете использовать метод intersection библиотеки lodash.

const mainArray = ["I", "am", "not", "a", "doctor"]
const secondArray = ["am", "doctor"]

const result = _.intersection(mainArray, secondArray)
const resultIndices = result.map(i => mainArray.indexOf(i))

console.log(result)
console.log(resultIndices)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

lissettdm

24.10.2020 11:56:52

вы можете использовать массив.прототип.помощи indexOf()

const mainArray = ["I", "am", "not", "a", "doctor"];
const secondArray = ["am", "doctor"];
const result = secondArray.map(w => mainArray.indexOf(w));
console.log(result);

Примечание: это решение вернет -1 для тех случаев, когда строка не совпадает.

Помочь в развитии проекта:
Закрыть X