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