我有这个对象
Object {
"87291": "valid",
"1873681927": "valid",
"nwq89j8jw0qj9": "valid",
"oVFYfWIUOsONE6JyMGYAbnsPMAr1": "valid",
}
我想做的是根据键值移除对象,并以数组的形式返回。
我使用了以下代码:
let attay = {
"87291": "valid",
"1873681927": "valid",
"nwq89j8jw0qj9": "valid",
"oVFYfWIUOsONE6JyMGYAbnsPMAr1": "valid",
}
let aar = Object.entries(attay)
attay = Object.keys(attay)
for(var i = 0; i < attay.length; i++) {
if(attay[i] == 'oVFYfWIUOsONE6JyMGYAbnsPMAr1'){
console.log("found "+attay[i]+" at "+i)
aar.splice(i, 1);
console.log(aar)
}else{
console.log("NOT found at "+i)
}
}
这段代码运行正常,但删除元素后的输出如下所示
Array [
Array [
"87291",
"valid",
],
Array [
"1873681927",
"valid",
],
Array [
"nwq89j8jw0qj9",
"valid",
],
]
预期输出应如下所示
Array [
"87291": "valid",
"1873681927": "valid",
"nwq89j8jw0qj9": "valid",
]
发布于 2019-06-06 05:28:50
如果您的运行时可以使用相对较新的entries
(和fromEntries
),那么您可以简单地获得您想要的东西。(根据问题中的语法,猜测您真正的目标是一个对象输出,而不是一个数组)。
let attay = {
"87291": "valid",
"1873681927": "valid",
"nwq89j8jw0qj9": "valid",
"oVFYfWIUOsONE6JyMGYAbnsPMAr1": "valid",
}
let removeKey = "oVFYfWIUOsONE6JyMGYAbnsPMAr1"
let pairs = Object.entries(attay).filter(e => e[0] != removeKey)
const obj = Object.fromEntries(pairs);
console.log(obj)
发布于 2019-06-06 05:37:35
发布于 2019-06-06 05:27:46
如果键与属性匹配,则可以这样使用delete
:
const obj = {
"87291": "valid",
"1873681927": "valid",
"nwq89j8jw0qj9": "valid",
"oVFYfWIUOsONE6JyMGYAbnsPMAr1": "valid",
}
const key = "87291";
delete obj[key]
console.log(obj)
https://stackoverflow.com/questions/56468134
复制相似问题