从列到行数组

时间:2018-02-04 01:11:23

标签: javascript arrays

我有这样的数组:

0:"A"
1:"B"
2:"C"
3:"D"

我想制作数组。

一个看起来像这样:

["A B C D"]

,第二个看起来像这样:

0: ["A B"]
1: ["C D"]

我尝试了推送和连续但没有任何结果

var ar = array.push(temp[i].concat(temp[i + 1]));

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

这会产生您正在寻找的结果。但是,我不确定它们正在使用的上下文,因此如果您显示更多代码,可能有更好的方法来执行此操作。

let array = ["A", "B", "C", "D"];

// Use Array.join() to create a string using the
// array data.
let str = array.join(' ');
let array2 = [str];

console.log(array2) // ["A B C D"]

// Use Array.reduce() to create a new array based
// on the previous array's values.
let array3 = array.reduce((acc, item, index) => {
    if (index % 2 !== 0) return acc;

    // EDIT: Added check to verify that the current
    // item is not the end of the array. 
    if (array[index + 1] === undefined) {
        acc.push([item]);
    } else {
        let newItem = array[index] + ' ' + array[index + 1];
        acc.push([newItem]);
    }

    return acc;
}, [])

console.log(array3) // [ ["A B"], ["C D"] ]

起初减少可能有点棘手。查看此MDN documentation可能有所帮助。

答案 1 :(得分:0)

var arr = ["a","b","c","d"]; 
var ar = [];  
var i = 0;
ar.push(arr[i] + " " + arr[i + 1]);

我假设你已经知道了第一个阵列。所以我只是创建一个新数组并将所需的(var i)元素推送到新数组中。然后把它粘在一个循环中,也许?

答案 2 :(得分:0)

您可以使用<td>将数组拆分为array#reduce大小的块。然后使用n,您可以迭代生成的数组并使用array#map创建每个数组的字符串。

&#13;
&#13;
array#join
&#13;
&#13;
&#13;