【发布时间】:2021-10-19 21:09:20
【问题描述】:
arr[arr.length] 是什么意思。我的意思是它的真正含义或它的真正作用,我无法理解它是如何工作的逻辑。谁能解释一下?
【问题讨论】:
-
arr[arr.length]是最后一个元素之后的元素。您可以使用它添加类似于arr.push的元素。
标签: javascript arrays
arr[arr.length] 是什么意思。我的意思是它的真正含义或它的真正作用,我无法理解它是如何工作的逻辑。谁能解释一下?
【问题讨论】:
arr[arr.length] 是最后一个元素之后的元素。您可以使用它添加类似于arr.push 的元素。
标签: javascript arrays
arr.length是数组的长度。
arr[arr.length] 正在通过索引访问数组长度(超出范围,因为长度从 1 开始,而不是索引 0)。
示例:
const test = [1,2,3]
test[test.length]
undefined
test[test.length-1]
3
【讨论】:
arr[arr.length]的优点。为什么有人会使用arr[arr.length]?
() => numbers[numbers.length] = Math.random() 而不是() => numbers[numbers.push(Math.random()) - 1],但显然这只是一种意见。我认为没有充分的理由强制 push 并使用返回的长度来访问数组,而不是直接使用该值。对我来说,这看起来像是编写糟糕的代码来强制“好习惯”
它只是请求数组的特定索引,用例:向数组添加新元素的方式不是很优雅,例如:
arr[arr.length] = newVal
arr.push(newVal)
arr = [...arr, newVal]
【讨论】:
arr[arr.length]的优点。为什么有人会使用arr[arr.length]?
() => numbers[numbers.length] = Math.random() 这样的东西比 () => { numbers.push(Math.random); return numbes[numbers.length - 1]; } 优雅得多
() => array.push(Math.random()) && array.at(-1),但无论如何,正如我所说,如果你打算在任何更大的项目中使用它,那么再说一遍:这段代码是不可持续的跨度>
arr.push(newVal) 比 arr[arr.length] = newVal 更可持续,因为究竟为什么呢?优雅是一种观点。 arr.push(newVal) 有什么优势?
arr.length 表示从索引0 到arr.length - 1 的数组长度。
例如,如果您有arr = ["a", "b", "c"],则arr.length 是3。
arr[0] 是 "a",arr[1] 是 "b",arr[2] 是 "c"。
arr[3] 不存在,还。但是如果你做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);
【讨论】:
arr[arr.length]的优点。为什么有人会使用arr[arr.length]?
arr[arr.length] = b 返回b。您可以在一个语句中写() => arr[arr.length] = b,例如对于内存() => numbers[numbers.length] = Math.random()的随机生成器
此语句获取数组最后一个索引的索引加一。它用于将项目附加到数组。相当于array.push()。
var fruits = ["apple", "orange", "banana", "pear"];
// appends grapes to the array
fruits[fruits.length] = "grapes";
console.log(fruits);
如需进一步阅读,请查看W3School's page on array methods。
【讨论】:
array.push() 将值附加到数组。
arr[arr.length]的优点。为什么有人会使用arr[arr.length]?
Array#push()
arr[arr.length] = b 返回b。您可以在一个语句中写() => arr[arr.length] = b,例如对于内存() => numbers[numbers.length] = Math.random() 的随机生成器