你翻轉你所訪問什麼財產。你這樣做是正確的第一次,但不是第二:
function removeNumbersLargerThan(num, obj) {
for(var key in obj){
if(obj[key] > num){ // Correct!
delete obj.key; // Should be obj[key] again
}
}
return obj;
}
否則你要刪除「鍵」屬性關閉obj
的。換句話說,你的循環ISN您實際上想要的財產delete
。這只是delete
荷蘭國際集團上的對象的key
屬性:
// What you declare
let num = 5;
let obj = {
key: "hello",
keyToKill: 7,
keyToLeaveAlone: 3
}
// Your initial loop to remove keys with value greater than a number
for (let key in obj) {
// If I find a key whose value is greater than num
if (obj[key] > num) {
// Delete the "key" property
delete obj.key;
}
}
// The above will give you this:
let incorrect = {
keyToKill: 7,
keyToLeaveAlone: 3
}
如果你想刪除比num
你會做以下,其值越大的屬性:
// If you do the following instead:
for (let key in obj) {
// If I find a key whose value is greater than num
if (obj[key] > num) {
// Delete the property who's value is greater than num
delete obj[key];
}
}
// You'll get this
let correct = {
key: "hello",
keyToLeaveAlone: 3
}
不應該是'delete obj [key];' – zero298
https://stackoverflow.com/questions/208105/how-do-i-remove-a-property-from-a-javascript-object – Matthew
'delete obj [key]' –