例如,以下对象:
var fruits = {
"red" : "apple",
"blue" : "blueberry",
"yellow" : "banana"
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用delete fruits["red"]键名删除它,但是如何通过水果名称删除对象项?
你尝试过这样的事吗?
function deleteByValue(val) {
for(var f in fruits) {
if(fruits[f] == val) {
delete fruits[f];
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据Rocket的评论,您可能需要检查hasOwnProperty以确保不删除对象原型的成员:
function deleteByValue(val) {
for(var f in fruits) {
if(fruits.hasOwnProperty(f) && fruits[f] == val) {
delete fruits[f];
}
}
}
Run Code Online (Sandbox Code Playgroud)