#javascript #vue.js
#javascript #vue.js
Вопрос:
У меня есть два массива строк, и я хочу сравнить их по значению и извлечь индексные номера идентичных элементов MainArray, которые доступны, например, во secondArray:
var mainArray = ["I", "am", "not", "a", "doctor"]
var secondArray = ["am", "doctor"]
var Result = [1,4]
Ответ №1:
вы можете использовать Array.prototype.indexOf()
const mainArray = ["I", "am", "not", "a", "doctor"];
const secondArray = ["am", "doctor"];
const result = secondArray.map(w => mainArray.indexOf(w));
console.log(result);
Примечание: это решение вернет -1 для тех случаев, когда строка не совпадает.
Ответ №2:
Вы можете использовать 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>