var strArr = []
strArr[0].push("someThing Text")
console.log(strArr)
错误:无法读取未定义的属性(读取“推送”)
var strArr = []
strArr[0] = "someThing Text"
console.log(strArr)
数组"someThing文本“
这两者有什么区别?为什么数组元素不能使用推送方法?
发布于 2021-12-20 03:32:28
您正在尝试将索引0处的数组推入另一个数组中。
var strArr = []
strArr.push("someThing Text")
console.log(strArr)如果您希望您的代码工作,您将需要这样做。
var strArr = [ [] ] // an array in an array
strArr[0].push("someThing Text")
console.log(strArr)发布于 2021-12-20 03:52:17
简单地说,push是一个数组方法。这意味着它只适用于数组(因为我也是一个学习者,所以我希望得到纠正)。
因此,只有当数组元素也是数组时,push才会对该数组元素应用/操作。另一种理解这一点的方法是注意数组中的元素可能具有不同的数据类型。每种数据类型都有一组不同(预定义的)操作/方法,可以应用于它们。push是一个预定义的方法,只能应用于类型数组的数组或数组元素。
请看下面的片段:
const myArr = ['Hello', 'World', ['Javascript', 'Python', 'PHP'], 100, 'function'];
console.log('Orginal array --> ' + myArr); // Orginal array: Hello,World,Javascript,Python,PHP,100,function
myArr.push(['Vue', 'Angular', 'React']);
console.log('Updated array --> ' + myArr); // Updated array --> Hello,World,Javascript,Python,PHP,100,function,Vue,Angular,React
myArr[2].push('Java');
console.log('Update myArr[2] ' + myArr); // Update myArr[2] Hello,World,Javascript,Python,PHP,Java,100,function,Vue,Angular,React
发布于 2021-12-20 03:33:53
在数组元素上使用的是push方法,而不是数组。您应该使用strArr.push()
https://stackoverflow.com/questions/70417114
复制相似问题