如何在javascript中成对加入数组元素

时间:2019-06-21 08:10:34

标签: javascript

我有一个数字数组[1,2,3,4,5,6,7,8,9,10],我想把它变成这样的字符串:'1,2 3,4 5 ,6 7,8 9,10'。是否有一些快速简单的方法可以在javascript中执行此操作,或者我必须使用循环?

for(let i = 0; i < array.length; i++){
     if(i%2 == 0){
        res += array[i] + ',';
     } else {
        res += array[i] + ' ';
     }
}

3 个答案:

答案 0 :(得分:0)

您可以使用逗号对,然后使用空格将字符串连接到数组,但是仍然需要循环

var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    temp = [],
    i = 0,
    string;
    
while (i < array.length) {
    temp.push(array.slice(i, i += 2).join());
}

string = temp.join(' ');

console.log(string);

答案 1 :(得分:0)

您可以使用reduce来获得所需的结果:

[1,2,3,4,5,6,7,8,9,10]
    .reduce((acc, val, idx) => 
        idx % 2 === 0 
            ? (acc ? `${acc} ${val}` : `${val}`) 
            : `${acc},${val}`, '') 
// "1,2 3,4 5,6 7,8 9,10"

通过利用reduce函数的第三个参数,我们知道当前正在迭代的元素的索引,因此也使此函数适用于非数字1到10的数组。

答案 2 :(得分:0)

您可以对数组进行分块,然后用逗号和空格连接元素:

var arr = [1,2,3,4,5,6,7,8,9,10,11]

chunkArr = arr.reduce((acc, item, index) => { 
  const i = Math.floor(index/2)
  if(!acc[i]) {
    acc[i] = []
  }
  acc[i].push(item)
  return acc
}, [])

arr = chunkArr.map(arr => arr.join(',')).join(' ')

console.log(arr)

  

请注意,此代码也可以处理奇数个数字。