6

我有一个二维数组的格式

emi_309 | present | weak   | 6
emi_310 | present | strong | 9
emi_319 | present | medium | 8
emi_315 | present | weak   | 5

我想使用一个简单的函数检查第一列中是否存在值

例如,检查 emi_77 是否存在于第一列

我遇到了,$.inArray(value, array)但这个函数只适用于一维数组。

二维数组是否有类似的东西

4

4 回答 4

7

是的,如果您结合使用$.inArrayand $.map

if ($.inArray(value, $.map(arr, function(v) { return v[0]; })) > -1) {
    // ...
}
于 2013-02-11T13:29:57.920 回答
1

可用于$.grep创建新数组并检查其长度

var val='emi_77';
if( $.grep( twoDarray, function(item){ return item[0]===val; }).length){
  /* item exists*/
}

$.grep不会影响原始数组

API 参考:http ://api.jquery.com/jQuery.grep/

于 2013-02-11T13:34:06.557 回答
1

这是我在没有 Jquery 的情况下简单地做到这一点的方法。

for (var i = 0; i <array.length; i++) {
        if(array[i][0] == 'emi_77'){
            alert("exists");
        }
}

如果您想更进一步,可以使用以下功能;

function IsIn2D(str,order,array){
  for (var i = 0; i <array.length; i++) {
        return array[i][order] == str;
  }
}

在哪里;
array是您要搜索的数组
str是您要检查它是否存在的字符串
order是内部数组中字符串的顺序,

例如,通过将其应用于问题的示例 2D 数组:
emi_309 | 礼物 | 弱 | 6
emi_310 | 礼物 | 强 | 9
emi_319 | 礼物 | 中 | 8
emi_315 | 礼物 | 弱 | 5

IsIn2D('emi_77',0,array); /*returns false*/
IsIn2D('emi_315',0,array); /*returns true*/
于 2015-11-23T10:04:46.053 回答
0

检查此方法以从二维数组中搜索。只需检查转换为字符串并进行比较。

function isArrayItemExists(array , item) {
    for ( var i = 0; i < array.length; i++ ) {
        if(JSON.stringify(array[i]) == JSON.stringify(item)){
            return true;
        }
            }
            return false;
}
于 2017-10-26T08:26:55.360 回答