我有一个如下所示的对象
{
"containers": [
{
"fields": [
{},
{},
'associative1': {},
'associative2': {}
]
}
]
}
所以基本上"领域"是一个数组,其中包含字段[0],字段[1]和& fields [associative1],fields [associative2]
我的问题是我可以动态删除"只是"编号元素...... 所以最后'领域'应该只有associative1,associative2元素
答案 0 :(得分:1)
创建一个看起来像你想要的有效对象......
var a = [{abc:1},{xyz:2}];
a.associative1 = {};
a.associative2 = {};
console.log(a);
输出(来自Chrome)
(2) [{…}, {…}, associative1: {…}, associative2: {…}]
0: {abc: 1}
1: {xyz: 2}
associative1: {}
associative2: {}
length: 2
您只能删除这样的编号数组元素......
a.splice(0,a.length);
或者,如果Array对象包含在更大的对象中,则此类内容将起作用...
c.containers[0].fields.splice(0,c.containers[0].fields.length)
答案 1 :(得分:1)
您可以使用解决方案
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);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
您的JSON无效。我稍微改变了JSON。
希望这会对你有所帮助。
答案 2 :(得分:0)
它是一个无效的对象。 fields数组包含name属性,这是不允许的。在这种情况下,字段必须是对象。如果测试将变量设置到该对象(仅在浏览器控制台中),则它将失败。