我有一个看起来像这样的数组。如何在二维数组中找到字符串?
var array[["a","b"],["c","d"],["e","f"]];
我希望能够通过数组搜索的字符串"d"
并返回相应的值"c"
。
我有一个看起来像这样的数组。如何在二维数组中找到字符串?
var array[["a","b"],["c","d"],["e","f"]];
我希望能够通过数组搜索的字符串"d"
并返回相应的值"c"
。
尝试:
function find_str(array){
for(var i in array){
if(array[i][1] == 'd'){
return array[i][0];
}
}
}
编辑:
function find_str(array){
for(var i=0;i<array.length;i++){
if(array[i][1] == 'd'){
return array[i][0];
}
}
}
用于获取包含指定值的数组中的所有元素的一般功能。以下功能使用Array.prototype
的几种方法:filter
,indexOf
,map
,slice
,splice
和concat
,用于平坦化阵列。
var array = [["a","b"],["c","d"],["c","e","f"]];
function findBy(arr, val) {
var ret = arr.filter(function(el) {
return el.indexOf(val) > -1;
}).map(function(el) {
var res = el.slice();
res.splice(el.indexOf(val), 1);
return res;
});
return Array.prototype.concat.apply([], ret);
}
findBy(array, 'c');
// -> ["d", "e", "f"]
findBy(array, 'b');
// -> ["a"]
findBy(array, 'g');
// -> []
您是否总是与两元素子阵列的* second *元素匹配? –
您可以创建一个循环,然后在第一维上查找字符串 –
“搜索”条件不明确。 – undefined