我有一个数字数组[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] + ' ';
}
}
答案 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)
请注意,此代码也可以处理奇数个数字。