编程测验:模式识别
编写一个以整数列表作为输入的函数 并返回一个新列表,其中每个元素是所有元素的总和 在其之后的原始列表中(包括其自身)。
示例:
// 1 Input: [2, 3, 8] Output: [13, 10, 2] // 2 Input: [6, 2, 3] Output: [11, 9, 6] // 3 Input: [4, 7, 2, 8, 6] Output: [27, 25, 17, 10, 4]
限制:
- 输入列表将至少包含一个整数。
const sumElements = (numbers) => {
let totalSum = 0;
let firstInput = 0
let totalSumSubtracted = 0;
let result = [];
for (let i = 0; i < numbers.length; i++) {
totalSum += numbers[i];
firstInput = numbers[0]
}
result.push(totalSum);
// console.log(result);
for (let i = 1; i < numbers.length; i++) {
totalSumSubtracted = totalSum - numbers[i];
// console.log(totalSumSubtracted);
result.push(totalSumSubtracted);
}
result.pop()
result.push(firstInput)
return result
}
console.log(sumElements([2, 3, 8]));
console.log(sumElements([6, 2, 3]));
console.log(sumElements([4, 7, 2, 8, 6]));
.as-console-wrapper { max-height: 100% !important; }
大家好,早上好。我正在做一个编程测验。我也尝试过自己和 chatGPT 做,但它没有产生所需的输出。我被困住了 你能更正我上面的代码吗?我很困惑如何处理数组输入元素超过 3 的情况。
const sumOfElements = (numbers) => {
let result = [];
let cumulativeSum = 0;
for (let i = numbers.length - 1; i >= 0; i--) {
cumulativeSum += numbers[i];
result[i] = cumulativeSum;
}
return result;
}
console.log(sumOfElements([4, 7, 2, 8, 6])); // Output: [27, 25, 17, 10, 4]
结果是一个空数组,从尾到头遍历numbers数组。 找到的每个元素,将其添加到运行总的cumulativeSum 中。 然后将当前的cumulativeSum存储在结果数组的当前索引处。 存储结果并返回。