0
谢谢您停止。我对我的代码感到困惑。我尝试了不同的变体,但仍然无法从obs数组中删除单个键。例如:删除阵列中的特定键
var cart = [];
var obj = {};
var newObj = {};
obj["mcdonald"] = "food"
obj["starbucks"] = "coffee"
newObj["new"] = "books"
newObj["old"] = "books"
cart.push(obj);
cart.push(newObj)
现在我们只想删除一个键。比方说,只需要newObj对象中值为“books”的“new”键而不是整个对象。每一次我都会删除整个对象而不是仅仅一个键。有人可以告诉我我可能错过了什么,或者我错了什么。这是我正在做的功课。我注意到测试通过了,因为我们需要删除我们放入参数的项目,但我想能够以正确的方式学习它。意思是,移动一个键不是整个对象。
function removeFromCart(itemName){
for(var newArr in cart){
if (cart.hasOwnProperty(newArr)) {
var item = Object.keys(cart[newArr])[0]
if (item === itemName) {
var index = cart.indexOf(itemName)
cart.splice(index, 1)
} else {
alert('That item is not in your cart.')
}
}
}
return cart
}
不是'删除cart [itemName]'工作吗? – apokryfos
@apokryfos如果我这样做了,似乎没有通过测试。我删除了var index和cart.splice(index,1),它说测试失败,因为没有被删除。 –