如果数组中存在另一个数组,则删除它们的所有项

时间:2014-03-28 08:41:50

标签: javascript arrays underscore.js

我有一个数组,我在其中添加其他数组的不同类别的项目:

例如,2个数组国家/地区和语言:

countries = ['US', 'UK', 'Canada'];
languages = ['English', 'French', 'German'];

我用它来填充另一个数组:

items = ['US', 'French'];

在项目中,我只能有一个来自国家/地区和语言的项目,因此每次我要在项目中添加国家/地区时,我必须删除已在项目中的其他国家/地区。

现在,我正在进行的方式是循环浏览国家和语言以检查项目是否在项目中,但我确信有一种更优雅的方式来执行此操作,例如使用underscore.js:

for ( var i = 0; i < country.length; i ++){
  if (items.indexOf(country[i]) > -1){
       items.splice($.inArray(country[i], items),1)
  }
}

有没有人有一个简单的解决方案?

最佳

1 个答案:

答案 0 :(得分:2)

不确定我是否完全理解。为什么不使用object而不是array?

var items = {'country': 'US', 'language': 'English'};

然后,当您通过分配items.country = 'UK';向项目添加其他国家/地区时,之前的国家/地区将被覆盖,因此您最终只能使用来自国家/地区的一个项目和来自项目对象中的语言的一个项目。