首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript对象添加到数组,然后移除元素

Javascript对象添加到数组,然后移除元素
EN

Stack Overflow用户
提问于 2019-06-06 05:17:04
回答 4查看 84关注 0票数 2

我有这个对象

代码语言:javascript
复制
Object {
  "87291": "valid",
  "1873681927": "valid",
  "nwq89j8jw0qj9": "valid",
  "oVFYfWIUOsONE6JyMGYAbnsPMAr1": "valid",
}

我想做的是根据键值移除对象,并以数组的形式返回。

我使用了以下代码:

代码语言:javascript
复制
    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)        
      }
    }

这段代码运行正常,但删除元素后的输出如下所示

代码语言:javascript
复制
Array [
  Array [
    "87291",
    "valid",
  ],
  Array [
    "1873681927",
    "valid",
  ],
  Array [
    "nwq89j8jw0qj9",
    "valid",
  ],
]

预期输出应如下所示

代码语言:javascript
复制
Array [
      "87291": "valid",
      "1873681927": "valid",
      "nwq89j8jw0qj9": "valid",
    ]
EN

回答 4

Stack Overflow用户

发布于 2019-06-06 05:28:50

如果您的运行时可以使用相对较新的entries (和fromEntries),那么您可以简单地获得您想要的东西。(根据问题中的语法,猜测您真正的目标是一个对象输出,而不是一个数组)。

代码语言:javascript
复制
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)

票数 1
EN

Stack Overflow用户

发布于 2019-06-06 05:37:35

答案来自@Pointy

代码语言:javascript
复制
delete attay.oVFYfWIUOsONE6JyMGYAbnsPMAr1

简单并像魅力一样工作,也在React Native上工作

票数 1
EN

Stack Overflow用户

发布于 2019-06-06 05:27:46

如果键与属性匹配,则可以这样使用delete

代码语言:javascript
复制
const obj = {
  "87291": "valid",
  "1873681927": "valid",
  "nwq89j8jw0qj9": "valid",
  "oVFYfWIUOsONE6JyMGYAbnsPMAr1": "valid",
}

const key = "87291";

delete obj[key]



console.log(obj)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56468134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档