首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript动态删除编号数组元素

JavaScript动态删除编号数组元素
EN

Stack Overflow用户
提问于 2017-10-14 06:33:07
回答 2查看 51关注 0票数 0

我有一个像下面这样的物体

代码语言:javascript
复制
{
  "containers": [
    {
    "fields": [
        {},
        {},
        'associative1': {},
        'associative2': {}
      ] 
    }
  ]
}

因此,基本上“字段”是一个数组,它包含两个字段( fields1 & fieldsassociative1、fieldsassociative2 )等元素

我的问题是我能动态删除“只是”编号的元素..。所以最后“字段”应该只有associative1,associative2元素

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-14 07:23:55

创建一个看起来与您想要的一样的有效对象.

代码语言:javascript
复制
var a = [{abc:1},{xyz:2}];
a.associative1 = {};
a.associative2 = {};
console.log(a);

输出(来自Chrome)

代码语言:javascript
复制
(2) [{…}, {…}, associative1: {…}, associative2: {…}]
0: {abc: 1}
1: {xyz: 2}
associative1: {}
associative2: {}
length: 2

--您可以只删除编号如下的数组元素.

代码语言:javascript
复制
a.splice(0,a.length);

或者如果数组对象包含在一个更大的对象中,像这样的东西会工作.

代码语言:javascript
复制
c.containers[0].fields.splice(0,c.containers[0].fields.length)
票数 1
EN

Stack Overflow用户

发布于 2017-10-14 07:26:31

给你一个解决办法

代码语言:javascript
复制
var data = {
  "containers": [
    {
    "fields": [
        {'abc': 1},
        {'xyz': 2},
        {'associative1': {}},
        {'associative2': {}}
    ]   
    }
  ]
};


for(var k in data["containers"][0]["fields"]){
 for(var key in data["containers"][0]["fields"][k]){
  if(!isNaN(data["containers"][0]["fields"][k][key])){
    delete data["containers"][0]["fields"][k];
  }
 }
}

data["containers"][0]["fields"] = data["containers"][0]["fields"].filter(function( element ) {
   return element !== undefined;
});

console.log(data);
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

您的JSON无效。我稍微改变了一下JSON。

希望这能帮到你。

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

https://stackoverflow.com/questions/46741624

复制
相关文章

相似问题

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