我声明在写这篇文章之前我已经尝试了很长时间。
对于 InDesign 脚本,我正在使用两个 ListItems 数组。现在我试图删除一个数组中不在第二个数组中的项目,但我被卡住了。
鉴于我使用以下 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还有另一种方法可以解决这个问题吗?
预先感谢您的任何帮助。