请帮助,我一直在寻找答案太久了
我尝试使用push方法创建一个数组来插入数字
0
到10
到您刚刚在上面初始化的数字数组0
到10
的位置。
我这样做了:
var numbers = [];
for(var i = 0; i < 10; i++) {
numbers.push(i);
console.log(numbers);
得到了这个结果,我认为这是正确的但不是100%肯定的:
[ 0 ]
[ 0, 1 ]
[ 0, 1, 2 ]
[ 0, 1, 2, 3 ]
[ 0, 1, 2, 3, 4 ]
[ 0, 1, 2, 3, 4, 5 ]
[ 0, 1, 2, 3, 4, 5, 6 ]
[ 0, 1, 2, 3, 4, 5, 6, 7 ]
[ 0, 1, 2, 3, 4, 5, 6, 7, 8 ]
[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
0
然后我将通过打印值的总和来测试数组推送方法
数组的位置3
和6
(使用console.log()
函数打印到控制台)。
输出值应为9
。
我如此坚持这一点,无法在任何地方找到如何实现这一目标的样本。我认为它可能是这样的:
console.log(numbers(sum[3, 6]);
答案 0 :(得分:0)
如果您想使用sum()函数,请尝试以下操作:
function sum(x, y) {
return x + y;
}
console.log(sum(numbers[3], numbers[6]));
这是一个小提琴:https://jsfiddle.net/7181h1ok/
答案 1 :(得分:0)
要对数组的两个索引的值求和,可以按以下方式使用+
加法运算符:
var numbers = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];
var sum = numbers[3] + numbers[6]; //adds the value in index 3 of the numbers array to the value in index 6 of the numbers array.
console.log(sum); //prints the sum to the console.
请注意,如果您不熟悉JavaScript和/或其运算符,w3schools上的有用文档可以帮助您入门。
答案 2 :(得分:0)
首先,让我们将您的代码转换为更好的风格:
const numbers = [];
for (let i = 0; i < 10; i++) {
numbers.push(i);
console.log(numbers);
}
&#13;
注意:我将numbers
设为const
而不是var
,因为您不会更改它。我还i
let
绑定而不是var
。通常,var
是遗留的,永远不应该使用。如果可能,请使用const
,否则请使用let
。
另外,我在for
关键字后插入了一个空格。通常建议将包含控件结构关键字(if
,while
,for
等)标题的括号与空格分开,以使其在视觉上与函数调用的参数列表的括号,没有空格。
其次:您的结果不正确。 (提示:数字0到10有多少?)它应包括数字0到10,但它只包括0到9的数字。你有通常所说的 off-by-one-error 。在处理尝试手动管理循环索引时,这些错误非常常见。这是修复:
const numbers = [];
for (let i = 0; i <= 10; i++) {
// ↑
numbers.push(i);
console.log(numbers);
}
&#13;
大多数现代编程语言都有比以更高级抽象形式(如迭代器,映射和折叠)手动处理循环索引更好的选择。不幸的是,ECMAScript没有Range
数据类型,否则这可以简单地表示为将Range
转换为Array
。
如果ECMAScript 具有Range
数据类型,那么可能就像其中一个:
const numbers = Range(0, 10).toArray()
const numbers = Array.from(Range(0, 10))
以下是创建numbers
Array
的替代方法,该方法不涉及手动管理循环索引,但仍需要知道0到10是11个数字:
const numbers = Array.from({length: 11}, (_, i) => i)
&#13;
如果您想在索引3和6处添加数字,您可以简单地取消引用索引3和6并添加结果:
console.log(numbers[3] + numbers[6])
&#13;
在评论中,您询问如何将Array
中的所有数字相加。使用二元运算符组合集合的元素称为fold
或reduce
和ECMAScript supports it out-of-the-box:
console.log(numbers.reduce((acc, el) => acc + el));
&#13;
注意没有显式循环,因此没有显式的循环索引管理。在这里完全不可能出现一个错误。
答案 3 :(得分:-1)
它将是:console.log((+numbers[3]) + (+numbers[6]));
通常,它应该是console.log(numbers[3] + numbers[6]);
,但有时会出现导致36而不是9的问题。额外的+符号告诉javascript它是一个数字。
注意:请记住,第一个数字是numbers[0]
。数组以0开始!