我有2个列表,我需要迭代它们并重复从主列表中删除。 例如:
ListA = {
[25151, "China DC", "Mar 14, 2014"], [8171, "Singapore IMT", "Mar 14, 2014"]
}
ListB = {
Object {
id = 3, dcName = "Argentina DC", countrycode = 613
}, Object {
id = 101, dcName = "ASEAN", country = "ASEAN"
}, Object {
id = 2, dcName = "Brazil DC", countrycode = 631
}, Object {
id = 6, dcName = "Central Europe", countrycode = 668
}, Object {
id = 5, dcName = "China DC", countrycode = 672
}
}
for (var i = 0; i < ListB.length; i++) {
for (var j = 0; j < listA.length; j++) {
if (listA[j][1] == ListB[i].dcName) {
} else {
htmlStr += dcList[i].dcName;
}
}
}
输出应该是
中国区 新加坡IMT
阿根廷DC
东盟
巴西DC
依旧......
但是现在输出的是, 所有DC的重复; s两次。 如何在script.pls帮助中循环它
答案 0 :(得分:0)
我会使用underscore.js(http://underscorejs.org)来提供_.uniq函数(删除数组的重复项)以及其他一些方便的函数来解决问题。
可能你需要的是:
// get all the DC values
var allDC = [];
for (var key in ListB)
{
allDC.push(ListB[dcName]);
}
// remove duplicates
allDC = _.uniq(allDC);
// remove the values from the first list
for (key in ListA)
{
ListA[key] = _.filter(ListA[key], function(object){ return _.indexOf(object,allDC) === -1; });
}
答案 1 :(得分:0)
使用数组推送所有数据并检查其.indexOf
var data = [];
for (var i = 0; i < ListB.length; i++) {
if (data.indexOf(ListB[i].dcName) == -1){
data.push(ListB[i].dcName);
}
}
for (var j = 0; j < ListA.length; j++) {
if (data.indexOf(ListA[j][1]) == -1){
data.push(ListA[j][2]);
}
}
alert(data);
你也应该用这种方式定义你的多阵列(ListA):
var ListA = [[25151, "China DC", "Mar 14, 2014"], [8171, "Singapore IMT", "Mar 14, 2014"]];
还有你的JSON格式(ListB):
var ListB =
[{
id: 3, dcName: "Argentina DC", countrycode : 613
},
{
id : 101, dcName : "ASEAN", countrycode : 123
},
{
id : 2, dcName : "Brazil DC", countrycode : 631
},
{
id : 6, dcName : "Central Europe", countrycode : 668
},
{
id : 5, dcName : "China DC", countrycode : 672
}];
在这里查看demo