有人可以帮我理解为什么以下数组长度在没有计数器的情况下递增。
var inputName = "";
var namesArray = new Array();
while ( (inputName = prompt("Enter a name", "")) != "") {
namesArray[namesArray.length] = inputName;
}
namesArray.sort();
var namesList = namesArray.join("\n");
console.log(namesList);
因此,我假设,while循环会增加while循环中包含的任何值。我查看了MDN While Loop,我可以看到这个例子中的x也都在递增。
我只是想确定我是否正确但主要理解为什么会这样做。
由于
答案 0 :(得分:1)
在Javascript中可以通过多种方式将项添加到数组中
您的代码基本上是推送,因此您可以替换
namesArray[namesArray.length] = inputName
与
namesArray.push(inputName)
答案 1 :(得分:0)
对于空数组,length
属性为0
。让我们这样说吧
第一次迭代
while ( (inputName = prompt("Enter a name", "")) != "") {
namesArray[namesArray.length] = inputName;
// namesArray[0] = inputName;
}
第二次迭代
while ( (inputName = prompt("Enter a name", "")) != "") {
namesArray[namesArray.length] = inputName;
// namesArray[1] = inputName; // since now length is 1
}
等等..所以你正在做的是按以下方式分配
names[0] = inputName
names[1] = inputName
...
因此,length
从0
增加到n
,因为您正在向数组中添加元素。
答案 2 :(得分:0)
Javascript数组的length属性是最高的下标加1。因此,如果数组中有8个元素,则它们的索引为0 - 7,长度为8.赋值语句namesArray[namesArray.length] = inputName;
向数组添加元素,因此增加了长度。
答案 3 :(得分:0)
while (condition) {// Condition either return true or false so loop will execute untill condition return false
namesArray[namesArray.length] = inputName //you just push data into array
}