如何在每个元素是一对对象时创建javascript数组

时间:2018-01-17 10:19:25

标签: javascript arrays

你好我想构建一个数组,每个元素都是一对对象,像这样的东西

var Shelves = new arr[][]
var books = new Books[] ;
Shelves[book[i],book[j=i+1]],[book[i+1],book[j=i+1]] and so on......;

我的意思是我理解如何使用for循环并获取元素但是如何将它们成对推出数组? arr.push不起作用:(

build1ArrPairs(1Arr) {
    if (1Arr != undefined || 1Arr!=null) {
        for (var i = 0; i < 1Arr.length; i = i + 1) {
            for (var j = i + 1; j <= 1Arr.length; j++) {
                this.1ArrPair.push(1Arr[i] 1Arr[j]);
                break;
            }
        }
    }
}

谢谢:)

2 个答案:

答案 0 :(得分:0)

首先,变量名称不能以数字开头。

其次,初始化一个数组,然后添加你的元素 - 一次两个 - 并返回数组:

var ans = [];
if (Arr != undefined || Arr != null) {
    for (var i=0; i<(Arr.length-1); i+=2) { // Note the loop stops 2 elements before the last one
        ans.push([Arr[i], Arr[i+1]]);
    //                  ^ Note the comma - it's missing in your code
    }
}
return ans;

答案 1 :(得分:0)

或者,您可以使用array#reduce对数组进行分组。

&#13;
&#13;
var names = ['a', 'b','c','d','e'];
var result = names.reduce((r,w,i) => {
  let index = Math.floor(i/2);
  if(!Array.isArray(r[index]))
    r[index] = [];
  r[index].push(w);
  return r;
},[]);
console.log(result);
&#13;
&#13;
&#13;