我有一个看起来像这样的数组。
var array[["a","b"],["c","d"],["e","f"]];
我希望能够在数组中搜索字符串"d"
并返回相应的值"c"
。
答案 0 :(得分:1)
尝试:
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];
}
}
}
答案 1 :(得分:1)
获取包含指定值的数组的所有元素的常规函数。以下函数使用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');
// -> []