我目前正在开设一个训练前课程,并且无法在线寻求帮助以解决让我有点困惑的问题。
我理解当我们使用JavaScript时,我们可以使用push(),pop(),shift()和unshift()方法来添加/删除数组。我遇到的问题是测试问题:
1) Arrays appendKitten(name) appends a kitten to the kittens array and returns a new array,
leaving the kittens array unchanged:
我解决了这个问题近一天了。当我们想要更改数组时,我得到了我们将使用其中一种方法。例如,当我们附加它时:
var kittens = ["Milo", "Otis", "Garfield"]
function destructivelyAppendKitten(name){
kittens.push(name)
return kittens
}
将新的小猫(名字)推入阵列。现在,为了解决我之前的测试,我写了:
function appendKitten(name){
var newArray = []
var kittens = kittens.concat(newArray);
kittens.push(name)
return kittens
}
但继续收到同样的错误。有什么我想念的吗?
我在解决这个问题时的思考过程:
1-我们使用单个参数调用函数名称appendKittens - >名。
2-我们正在将数据从kitten变量推送到本地小猫实例,以便拥有相同的数组。
3-我们将参数中传递的任何名称推送到新数组中。
4-返回执行了push()的新数组,使全局小猫不受影响。
我的思维过程是否关闭?任何关于我离开的地方的想法?所有帮助的人。谢谢,真的很感激。
答案 0 :(得分:3)
function appendKitten(name){
var newArray = kittens.slice();
// or ES6 way
// var newArray = [...kittens];
newArray.push(name)
return newArray
}