我声明在写这篇文章之前已经尝试了很长时间。
对于一个InDesign脚本,我正在处理两个ListItem数组。现在我正在尝试删除第一个数组中不在第二个数组中的项目,但我卡住了。
鉴于我使用以下JavaScript代码(它运行得很好)来删除两个数组之间相等的项目:
对于一个InDesign脚本,我正在处理两个ListItem数组。现在我正在尝试删除第一个数组中不在第二个数组中的项目,但我卡住了。
鉴于我使用以下JavaScript代码(它运行得很好)来删除两个数组之间相等的项目:
function check_dupli(arr_A, arr_B) {
for(var i = arr_B.length - 1; i >= 0; i--) {
for(var j = 0; j < arr_A.length; j++) {
if(arr_B[i] === arr_A[j]) {
arr_B.splice(i, 1);
}
}
}
arr_B.sort();
}
arr_A = ["a","b","d","f","g"]
arr_B = ["a","c","f","h"]
check_dupli(arr_A, arr_B) --> arr_B = ["c","h"]
check_dupli(arr_B, arr_A) --> arr_B = ["b","d","g"]
我想修改它以忽略不在两个数组中的项,并获得我想要的内容,但由于我也得到了不需要的数据,所以出现了一些问题:
function get_dupli(arr_A, arr_B, arr_C) {
for(var e = arr_B.length - 1; e >= 0; e--) {
for(var k = 0; k < arr_A.length; k++) {
if(arr_B[e] === arr_A[k]) {
arr_C.push(arr_B[e]);
}
}
}
arr_C.sort();
}
arr_A = ["a","b","d","f","g"]
arr_B = ["a","g","k"]
arr_C = ["h"]
get_dupli(arr_A, arr_B, arr_C) --> arr_C = ["a","g","h","k"] instead of --> ["a","g","h"]
get_dupli(arr_B, arr_A, arr_C) --> arr_C = ["a","b","d","f","g","h"] instead of --> ["a","g","h"]
我错在哪里?有没有纯javascript的另一种解决方法呢?
提前感谢任何帮助。