我有 2 个 JavaScript 数组,如下所示;
arr1 = [CRS02,CRS04,CRS03,CRS01,CRS05];
arr2 = [CRS02,CRS03,CRS05];
arr2
包含少于或等于 arr1
的元素。
我想创建一个如下所示的字符串。
CRS02,--,CRS03,--,CRS05
如果 arr2
中的元素包含在 arr1
中,则应显示该元素,否则应显示“--”。
我试过如下,
for (a = 0; a < arr1.length; a++) {
for (c = 0; c < arr2.length; c++) {
if (arr1[a] == arr2[c]) {
content += arr2[c] + ",";
continue;
} else {
content += "--,";
}
}
continue;
}
alert(content);
但无法正常工作。请帮忙。
最佳答案
假设
- Array 项目已排序(如果没有,则需要对它们进行排序)
arr2
不包含任何不属于arr1
的元素
使用map
迭代检查每个item
的index
是否不为-1
var output = arr1.map( s => arr2.indexOf( s ) != -1 ? s : "--" );
演示
var arr1 = ["CRS02","CRS04","CRS03","CRS01","CRS05"];
var arr2 = ["CRS02","CRS03","CRS05"];
var output = arr1.map( s => arr2.indexOf( s ) != -1 ? s : "--" );
console.log( output );
关于javascript - 通过比较 2 个数组在 JavaScript 中创建一个字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48021383/