0

我目前正在通过数组练习来练习我的数组迭代编程。我有一个字符串对象数组,看起来像这样。

var balling = [
  "Calvin Klein", "Tommy Hilfiger", "FUBU", "Rocca Wear",
  "Calvin Klein", "Tommy Hilfiger", "FUBU", "Rocca Wear"
];

现在我知道会起作用的是,如果我像这样进入并遍历所有这些。

for (var i = 0; i < balling.length; i++) {
  balling[i] = console.log(balling[i]);
};

然后整个事情从上到下一一打印出来。

我宁愿做的不是打印出该数组中的所有 8 个对象,而是希望for在我的数组中指定特定范围的对象。

我究竟需要做什么才能让我的for循环得到我想要的结果?有没有办法让我指定我的数组中有多少对象被打印出来?不只是一个,而是两个、三个,还有一个开始数组的起点和一个设定的范围?

4

4 回答 4

0

您可以使用从orMath.min(a,b)中获取最小值的函数,因此如果数组长度小于您希望获得的最小条目数,则不会有问题:ab

var min_entries = 4;

for (var i = 0; i < Math.min(balling.length, min_entries); i++) {
  balling[i] = console.log(balling[i]);
};

如果你想要一个不同的范围,你也可以使用Array.prototype.slice方法: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice?v=example

var a = ['zero', 'one', 'two', 'three'];
var sliced = a.slice(1, 3);

console.log(a);      // ['zero', 'one', 'two', 'three']
console.log(sliced); // ['one', 'two']
于 2017-04-23T16:03:58.683 回答
0

您可以创建一个数组,其中包含反映应在for循环中迭代的索引范围的元素。递增范围的第一个元素,直到达到范围的第二个元素。

var balling = ["Calvin Klein", "Tommy Hilfiger", "FUBU", "Rocca Wear"
              , "Calvin Klein", "Tommy Hilfiger", "FUBU", "Rocca Wear"];

var [from, to] = [2, 5];

for (; from < to; from++) console.log(balling[from]);

于 2017-04-23T16:04:14.463 回答
0

您可以更改为 start 和 range 声明一个 var 来定义将显示的数量,例如:

var start = 1;
var range = 4;

for (var i = start; i < start + range; i++) {
  balling[i] = console.log(balling[i]);
};
于 2017-04-23T16:04:50.253 回答
0

当您在 for 循环中声明“i”变量时,这基本上就是起点。

例如,给定数组 ['a', 'b', 'c', 'd'] 和循环:

  for (var i = 1; i < array.length; i++ ) {
     console.log(array[i]);
  }

这将打印出'b','c'和'd',因为'i'变量是1而不是0,它不会打印第一个元素。说得通?

于 2017-04-23T16:05:15.097 回答