我有一个格式为
的二维数组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)
,但此功能仅适用于1d数组。
2d数组是否有类似的东西
答案 0 :(得分:7)
是的,如果您组合使用$.inArray
和$.map
:
if ($.inArray(value, $.map(arr, function(v) { return v[0]; })) > -1) {
// ...
}
答案 1 :(得分:1)
可以使用$.grep
创建新数组并检查其长度
var val='emi_77';
if( $.grep( twoDarray, function(item){ return item[0]===val; }).length){
/* item exists*/
}
$.grep
不会影响原始数组
答案 2 :(得分: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*/
答案 3 :(得分:0)
检查此方法以从2D阵列中搜索。 只需检查转换为字符串并进行比较。
function isArrayItemExists(array , item) {
for ( var i = 0; i < array.length; i++ ) {
if(JSON.stringify(array[i]) == JSON.stringify(item)){
return true;
}
}
return false;
}