使用单个索引在多维数组中定位项目

时间:2018-11-20 07:49:14

标签: javascript arrays

我有这个多维数组:

points= [['1','2','3'], ['4','5','6'] ]

我在上面的数组中有一个检查所需的点数组;

new_points = [ 'a','b', 'c', 'd', 'e', 'f']

enter image description here

所以a1(0,0),b2(0,1)等,所以积分变为;

points= [['a','b','c'], ['d','e','f'] ]

多维数组将始终为 3 x 3 4 x 4 等。

3 个答案:

答案 0 :(得分:0)

使用两个.map(),然后在嵌套函数中根据地图索引获取new_points的相关项目的索引。

var points= [['1','2','3'], ['4','5','6']];
var new_points = [ 'a','b', 'c', 'd', 'e', 'f'];

var newArr = points.map(function(item, i){
  return item.map(function(val, j){
    return new_points[(item.length*i)+j];
  });
});
console.log(newArr);

答案 1 :(得分:0)

如果点是二维的,但是嵌套数组的长度可以变化,那么您可以使用计数器来减少点,以帮助从new_points获取项目:

var byteArray = new byte[sizeof(UInt32)];
varBytes.CopyTo(byteArray);

UInt32 varReady = BitConverter.ToUInt32(byteArray, 0);

答案 2 :(得分:0)

您可以通过映射原始数组结构来移动new_points的每个元素。

var points = [['1', '2', '3'], ['4', '5', '6']],
    new_points = ['a', 'b', 'c', 'd', 'e', 'f'];

points = points.map(a => a.map(Array.prototype.shift, new_points));

console.log(points);