所以我刚学会了如何为for循环创建一个函数。 这就是我们所拥有的:
function each(array, func) {
for (var i = 0; i <array.length; i++) {
func(array[i]);
}
}
现在我正在尝试使用已经制作的函数来使用for循环,并将其替换为每个。
var people = [
{name: {first: "Alyssa", middle: "P.", last: "Hacker"}, age: 26},
{name: {first: "Ben", last: "Bitdiddle"}, age: 34}
];
function ages1(people) {
var acc = [];
for (var i = 0; i < people.length; i++) {
acc.push(people[i].age);
}
return acc;
}
此函数返回[26,34]
所以现在我创造了这个:
function ages(people) {
var acc = [];
each(people, function(age) {
acc.push(people[i].age);
});
return acc;
}
我收到“我未定义”错误。如果我不能使用i来引用每个数字,我还能如何将每个年龄推入新数组?
答案 0 :(得分:1)
你应该这样做:
function ages(people) {
var acc = [];
each(people, function(person) {
acc.push(person.age);
});
return acc;
}
顺便说一句,javascript有一个原生的forEach
函数可以执行each
函数的功能,并且可能更快/更强大。
它位于Array
的原型中,所以它在数组上使用如下:
people.forEach(function(person) {
acc.push(person.age);
})