arr[arr.length]
是什么意思?我的意思是它真正的意思或它真正的作用,我无法理解它是如何工作的逻辑。有人能解释一下吗?
arr.length
表示从索引0
到索引arr.length - 1
的数组长度。
例如,如果你得到arr = ["a", "b", "c"]
,arr.length
就是3
。
arr[0]
为"a"
,arr[1]
为"b"
,arr[2]
为"c"
。
arr[3]
不存在,yet。但如果你做arr[arr.length] = "d"
,你会得到["a", "b", "c", "d"]
。
这是一个奇怪的结构,通常,人们应该简单地写arr.push("d")
。
const arr = ["a", "b", "c"];
console.log(arr.length, arr[0], arr[1], arr[2], arr[3]);
arr[arr.length] = "d";
console.log(arr);
arr.push("e");
console.log(arr);
该语句获取数组最后一个索引的索引加1。它用于向数组追加项。相当于array.push()
.
var fruits = ["apple", "orange", "banana", "pear"];
// appends grapes to the array
fruits[fruits.length] = "grapes";
console.log(fruits);
要进一步阅读,请查看MDN的数组方法页面。
arr.length
是数组的长度。
arr[arr.length]
正在通过索引访问数组长度(越界,因为长度从1开始,而不是索引0)。
的例子:
const test = [1,2,3]
test[test.length]
undefined
test[test.length-1]
3
它只是请求数组的特定索引,用例:向数组添加新元素的方式不是很优雅,如:
arr[arr.length] = newVal
arr.push(newVal)
arr = [...arr, newVal]