我有两个JavaScript数组。
var arrOne = ["1.", "2.", "3.", "4.", "5."];
var arrTwo = ["3.4", "1.1", "2.3", "1.5", "10", "2.4" , "44"];
对于第一个数组(arrOne)中的每个项目,我想检查第二个数组中的项目数(arrTwo)是否包含以第一个数组的值开头的值。
例如:我将检查arrTwo中有多少项以值" 1开始。"。它应该返回我" 1.1",1.5。
找到这些值后,我想用1.1& 1.5在第一个阵列中。
因此最终输出应如下所示:["1.1", "1.5", "2.3", "2.4", "3.4", "4.", "5."];
我知道如何找到值但不确定要替换值。
答案 0 :(得分:3)
您可以使用两个循环,检查arrTwo中arrOne元素的索引。如果存在匹配项,请将其添加到最终的值数组中。像这样:
var arr = [];
$.each(arrOne, function (i, val) {
var valFound = false;
$.each(arrTwo, function (i, v) {
if (v.indexOf(val) == 0) {
valFound = true;
arr.push(v);
}
});
!valFound && arr.push(val);
});
仅限原生JS:
var arr = [];
for (var i = 0; i < arrOne.length; i++) {
var valFound = false;
for (var n = 0; n < arrTwo.length; n++) {
if (arrTwo[n].indexOf(arrOne[i]) == 0) {
valFound = true;
arr.push(arrTwo[n]);
}
};
!valFound && arr.push(arrOne[i]);
};
答案 1 :(得分:0)
你可以试试这个:
var arrOne = ["1.", "2.", "3.", "4.", "5."];
var arrTwo = ["3.4", "1.1", "2.3", "1.5", "10", "2.4" , "44"];
var arrResult = [];
for (var i = arrOne.length - 1; i >= 0; i--) {
for (var x = arrTwo.length - 1; x >= 0; x--) {
if(arrOne[i] == arrTwo[x].substring(0,arrOne[i].length)) {
arrResult.push(arrTwo[x])
}
};
};
console.log(arrResult);