我的for循环somehome仅适用于数组的第一项但不适用于休息。
var Cat = function ( name, src, id, clicks) {
var obj = Object.create(Cat.prototype);
obj.id = id;
obj.name = name;
obj.src = src;
obj.clicks = clicks;
return obj;
}
var getCatList = function (array) {
for (let i = 0; i < array.length; i++) {
console.log(array[i]);
return array[i].addCat();
}
}
var Cats = [new Cat("cat-1", "image.src", "cat_1", 0),new Cat("cat-2", "image.src", "cat_2", 0), new Cat("cat-3", "image.src", "cat_3", 0)]
getCatList(Cats);
答案 0 :(得分:2)
在第一次迭代后返回循环:
return array[i].addCat();
不确定您要做什么 - 将猫添加到新阵列并返回它?
答案 1 :(得分:1)
return
循环中的for
将退出该功能。
你的意思是写array[i].addCat();
作为陈述吗?
答案 2 :(得分:0)
for block中的return
语句将在第一个语句之后退出for迭代。
var getCatList = function (array) {
for (let i = 0; i < array.length; i++) {
console.log(array[i]);
// remove return statement
// return array[i].addCat();
array[i].addCat();
}
}
var Cats = [new Cat("cat-1", "image.src", "cat_1", 0),new Cat("cat-2", "image.src", "cat_2", 0), new Cat("cat-3", "image.src", "cat_3", 0)]
getCatList(Cats);
答案 3 :(得分:0)
如果在return
循环内调用for
,它将停止执行并退出该函数。
要从getCatList
方法中获取一系列Cats,您可以使用Array.prototype.map():
代码:
var Cat = function (name, src, id, clicks) {
var obj = Object.create(Cat.prototype);
obj.id = id;
obj.name = name;
obj.src = src;
obj.clicks = clicks;
return obj;
},
getCatList = function (array) {
return array.map(function (el) {
return el;
});
},
Cats = [new Cat("cat-1", "image.src", "cat_1", 0), new Cat("cat-2", "image.src", "cat_2", 0), new Cat("cat-3", "image.src", "cat_3", 0)];
console.log(getCatList(Cats));
&#13;
ES6:
let getCatList = array => array.map(el => el);
答案 4 :(得分:0)
无论数组持有多少元素
这样做
for (let i = 0; i < array.length; i++) {
console.log(array[i]);
return array[i].addCat();
}
只会执行循环中的第一个boucle,