gpt4 book ai didi

javascript - .push() 多个对象放入 JavaScript 数组返回 'undefined'

转载 作者:行者123 更新时间:2023-12-03 13:08:17 24 4
gpt4 key购买 nike

当我将项目添加到 beats 数组然后 console.log 用户时,我得到了数组中正确数量的项目。但是当我检查 .length 时,我总是得到 1。
尝试调用索引总是会给我“未定义”,如下所示:Tom.beats[1]我想我错过了一些明显的东西,但这正在打败我。我怀疑我在滥用 .push方法,但我不确定。任何帮助是极大的赞赏!
(使用 Chrome 开发工具)

//The USER

function User(name, role){
this.beats = [ ];

this.name = name;
this.role = role;

// add beats to beats array

this.addBeats = function(beats){
return this.beats.push(beats);
};

}

// Three New Instances. Three New Users.

var Mal = new User("Mal", "Rapper");
Mal.addBeats(["love", "cash"]);

var Dan = new User("Dan", "Producer");
Dan.addBeats(["cake", "dirt", "sally-mae"]);

var Tom = new User("Tom", "Producer");
Tom.addBeats(["Fun", "Little", "Samsung", "Turtle", "PC"]);

// Check for position in beats array

console.log(Tom.beats);
console.log(Mal.beats);
console.log(Dan.beats);

console.log(Mal.beats[1]);
console.log(Dan.beats[1]);
console.log(Tom.beats[1]);

最佳答案

Array.push(...) 需要多个参数附加到列表中。如果你把它们放在一个数组中,这个“节拍”数组将被附加。

Array.concat(...) 很可能不是您要查找的内容,因为它会生成一个新数组而不是附加到现有数组。

您可以使用 [].push.apply(Array, arg_list) 附加参数列表的项目:

this.addBeats = function(beats) { 
return [].push.apply(this.beats, beats);
};

关于javascript - .push() 多个对象放入 JavaScript 数组返回 'undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com