是否有可能在特定范围内循环遍历数组而不是遍历整个事物?

时间:2017-04-23 15:51:50

标签: javascript arrays for-loop arrayiterator

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

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 个答案:

答案 0 :(得分:0)

您可以使用Math.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']

答案 1 :(得分: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]);

答案 2 :(得分:0)

您可以更改为开始和范围声明一个var,它将定义显示的数量,例如:

var start = 1;
var range = 4;

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

答案 3 :(得分: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,它不会打印第一个元素。有意义吗?