将所有数组元素合并为一个元素

时间:2019-09-18 09:29:16

标签: javascript arrays

有没有一种方法可以将所有数组元素合并为一个元素?

例如:

var array = [1,2,3];
// array = [123];

9 个答案:

答案 0 :(得分:4)

您可以减少数组。

var array = [1, 2, 3],
    result = array.reduce(([a], b) => [(a || 0) * 10 + b], []);

console.log(result);

T。J. Crowder在评论中建议的较短的一个。

var array = [1, 2, 3],
    result = [array.reduce((a, b) => a * 10 + b, 0)];

console.log(result);

答案 1 :(得分:3)

这是使用 .join()的可能解决方案。

  

array.join()方法是JavaScript中的内置函数,   用于将数组的元素连接到字符串中。   字符串将由指定的分隔符及其默认值分隔   值是逗号(,)。

请注意,通过传递空字符串来联接,可以得到数组所有元素的串联。

换句话说, join('')也将删除多余的逗号。

然后使用parseInt将此过程的最终结果转换为数字,我认为这对于初学者来说是一个易于理解的解决方案。

// Expected result is an array like this
// var newArray = [123];
var array = [1,2,3];
var newArray = [parseInt(array.join(''))];
console.log(newArray);

奖金
我看到很多用户在这里建议使用一元运算符+代替parseInt。

关于主题here on Stackoverflow,有一个有趣的答案和讨论。

答案 2 :(得分:2)

使用array.join可以将所有元素作为字符串连接,然后使用Number或parseInt函数将其转换为数字。

const array = [1,2,3];
const result = [Number(array.join(''))];
// const result = [parseInt(array.join(''), 10)];

答案 3 :(得分:1)

var result=0;
var array = [1,2,3];
for(i=0;i<array.length;i++){
    var a = Math.pow(10,array.length-i-1)
    result += array[i]*a
}

答案 4 :(得分:0)

使用join方法

var array = [1,2,3];
var joinedArray = array.join('')
while (array.length) {
    array.pop();
}
array.push(parseInt(joinedArray));
console.log(array);

答案 5 :(得分:0)

  

说明:

join('')将数组中的所有元素连接成一个字符串。
+会将其转换为数字。

let array = [1, 2, 3];
console.log([+array.join('')]);

答案 6 :(得分:0)

您也可以像...

    var array = [1,2,3];
    var join="";
    array_size = array.length;
    for (let i=0 ; i<=array_size ; i++)
             join += array[i];

将返回字符串而不是数字。 您可以使用join = Number(join);

将其转换为数字

答案 7 :(得分:-1)

您可以像这样加入它

var array = [1,2,3];
var joined = array.join();
joined = joined.replace (/,/g, "");
console.log(joined);

答案 8 :(得分:-2)

let array = [1,2,3];
let number = Number.parseInt(array.join(''));