for循环仅显示数组中的第一项

时间:2016-11-29 12:42:39

标签: javascript arrays loops

我的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);

5 个答案:

答案 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()

代码:

&#13;
&#13;
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;
&#13;
&#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,