如何从多维数组中获取值并在javascript中进行比较?

时间:2013-03-14 20:01:02

标签: javascript jquery multidimensional-array

我遇到了问题,我不知道如何正确解决问题。

我有多维数组,我想从这个数组中获取特定值并将其放入新数组。见下面的例子:

var myArr = [];
var extArr = [{ name:"john", id:1 }, { name: "bill", id: 2 }, ... , { name: "john", id: N }, ... ];

$.each(extArr, function(key, val){
    if (  ...  ) { // <-- I need a condition here to prevent "name" repetition
        myArr.push({ name: val.name, id: val.id });
    } else {
        // do nothing
    }
});

我需要找到防止推入 myArr 相同名称的条件。例如,我不想在 myArr 中有两个 johns 或多个账单

我能想到的就是为 myArr 启动一个新的 $。每个循环:

$.each(extArr, function(key, val){
    var checkcheck;
    $.each(myArr, function(key, name){
       if ( val.name == name.name ) {
           checkcheck = false;
       } else {
           checkcheck = true;
       }
    }
    if (  checkcheck == false  ) {
        myArr.push({ name: val.name, id: val.id });
    } else {
        // do nothing
    }
});

但我确信必须有一个更智能的解决方案。 请帮我找到它......

1 个答案:

答案 0 :(得分:1)

您可以使用$.inArray检查该值是否已存在:

$.each(extArr, function(key, val){
    if ( $.inArray(val.name, myArr) == -1) 
         myArr.push(val.name);
});