在二维数组Javascript中查找零索引数据

时间:2019-03-10 11:50:03

标签: javascript multidimensional-array ecmascript-6 underscore.js lodash

在2d数组javascript中获取所有0索引数据

let a = [["", "2", "", ""], ["1", "3", "", ""], ["", "", "4", ""]]
index = 0

output = ["", "1", ""]

类似地获取所有剩余的索引数据

index= 1
output = ["2", "3", ""]

4 个答案:

答案 0 :(得分:2)

您可以使用reduce

循环遍历arr,并为arr中的每个元素循环遍历,以获得所需的索引值并将其推入op。

let a = [["", "2", "", ""], ["1", "3", "", ""], ["", "", "4", ""]]

function getIndex(arr,index){
  return arr.reduce((op,inp) => {
    let val = inp.find((e,i) => i === index )
    op.push(val)
    return op
  },[])
}

console.log(getIndex(a,0))
console.log(getIndex(a,1))

答案 1 :(得分:2)

您可以将Array#map方法与ES6 destructuring feature一起使用。分解有助于从对象(Javascript数组也是对象)中提取某些属性。

let a = [
  ["", "2", "", ""],
  ["1", "3", "", ""],
  ["", "", "4", ""]
];
let index = 0;

let output = a.map(({[ index ]: v }) => v)

console.log(output);


index = 1;

output = a.map(({[ index ]: v }) => v)

console.log(output);

答案 2 :(得分:1)

要获取第一个索引:

const result = Array.map(a=>a[0]);

结果将包含嵌套数组中所有元素的第一个索引。通过遍历数组并获取第一个索引元素来工作

答案 3 :(得分:1)

使用lodash,您可以仅将索引用作迭代器:

const result = _.map(a, 1);