如何在二维数组中找到字符串?

时间:2015-05-14 03:22:05

标签: javascript string multidimensional-array find

我有一个看起来像这样的数组。

var array[["a","b"],["c","d"],["e","f"]];         

我希望能够在数组中搜索字符串"d"并返回相应的值"c"

2 个答案:

答案 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.prototypefilterindexOfmapslicespliceconcat的几种方法进行展平数组。

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');
// -> []