有没有一种方法可以将所有数组元素合并为一个元素?
例如:
var array = [1,2,3];
// array = [123];
答案 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(''));