我目前正在进行数组练习,以练习我在数组迭代上的编程。我有一个字符串对象数组,看起来像这样。
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
循环做些什么来获得我想要的结果?有没有办法让我指定打印出阵列中有多少个对象?不只是一个而是两个,三个,以及一个启动数组和设定范围的起始位置?
答案 0 :(得分:0)
您可以使用Math.min(a,b)
函数,该函数从a
或b
获取最低值,因此如果数组长度小于您希望获得的最小值,你不会有问题:
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,它不会打印第一个元素。有意义吗?