javascript - 将数组数值反向保存在另一个数组中,然后将结果作为数值存储在变量中
问题描述
一般来说,在下面的代码中,我的目标是将数组从结束到开始的值存储在一个新数组中,然后将其显示为一个数字,当然,与此同时,我将每个数组单元格的值加倍。
我想知道有没有更简单的方法?
let firstArray = [1, 2, 3];
const secondArray = [];
firstArrayLength = firstArray.length;
let i = 0;
let y = 0;
while (i < firstArrayLength) {
secondArray.push(firstArray.pop());
i++;
};
secondArrayLength = firstArrayLength;
while (y < secondArrayLength) {
if (y == 0) {
secondArray[y] = secondArray[y] * 100;
secondArray[y] = secondArray[y] * 2;
}
if (y == 1) {
secondArray[y] = secondArray[y] * 10;
secondArray[y] = secondArray[y] * 2;
}
if (y == 2) {
secondArray[y] = secondArray[y] * 1;
secondArray[y] = secondArray[y] * 2;
}
y++;
}
let sum = 0;
for (let i = 0; i < secondArray.length; i++) {
sum = sum + secondArray[i];
}
console.log(sum);
解决方案
使用一个数组的解决方案,Array.reverse()
并且map()
(通过改变原始数组):
let firstArray = [1, 2, 3];
firstArray.reverse(); // --> [3, 2, 1]
let sum = '';
firstArray.map(i => {
sum += i*2+''
});
console.log(sum); // --> 642
// if you need integer value of sum
let int_sum = parseInt(sum)
不改变原始数组的解决方案:
let firstArray = [1, 2, 3];
let sum = '';
firstArray.slice().reverse().map(i => {
sum += i*2+''
});
console.log(firstArray); // --> [1, 2, 3]
console.log(sum); // --> 642
// if you need integer value of sum
let int_sum = parseInt(sum)
推荐阅读
- c# - 容器化的 .net 核心应用程序无法连接到容器化的 mongo db
- java - Android SecretKey AES 和 JWK:如何转换
- arrays - useState 钩子在 setState 之后不断返回 initailState
- windows - “出了点问题”,Visual Studio 社区中的错误
- java - 使用 try-with-resources 或在“finally”子句中关闭此“语句”
- python - Windows 上的 IPython 无法导入 geopandas
- swift - 使用出队的 dequeueReusableCell - 出队后单元格的 textField
- javascript - 如何在Javascript中获取不包含在另一个数组中的数组项
- linux - 如何打印一些linux进程的命令行
- function - PyQt5 多个按钮和 1 个函数来更改按钮文本