![](/img/trans.png)
[英]How to remove a property from nested javascript objects any level deep?
[英]Javascript how to add and remove JSON element which is on 2 level deep
我搜索了很多关于如何从JSON对象中删除元素的消息。
这是我的简化JSON来说明我的要求。
束:
{
"resourceType": "Bundle",
"meta": {
"lastUpdated": "2017-10-06T04:42:22.411Z"
},
"type": "searchset",
"total": "0",
"entry": [
{
"_id": "59d5739e668e9e3fd29aeb0d",
"resource": {
"id": "59d5739e668e9e3fd29aeb0d"
},
"__v": 0
},
{
"_id": "59d6a3fae4b45d50c5ffd4f7",
"resource": {
"id": "59d6a3fae4b45d50c5ffd4f7"
},
"__v": 0
},
{
"_id": "59d6a831e4b45d50c5ffd4fa",
"resource": {
"id": "59d6a831e4b45d50c5ffd4fa"
},
"__v": 0
}
]
}
如何删除所有entry._id和entry .__ v? 我尝试了这些,但是没有用。
delete bundle.meta; <-- meta is on level 1, it works.
delete bundle.entry._id; <-- not working. The _id under entry
delete bundle.__v; <-- not working. The __v is also under entry
如何在每个条目(例如“全名”)下添加新元素,如下所示
我想要的结果-删除“ _id”和“ __v”,然后在条目[]中添加“全名”:
{
"resourceType": "Bundle",
"meta": {
"lastUpdated": "2017-10-06T04:42:22.411Z"
},
"type": "searchset",
"total": "0",
"entry": [
{
"fullname": "Apple",
"resource": {
"id": "59d5739e668e9e3fd29aeb0d",
}
},
{
"fullname": "Orange",
"resource": {
"id": "59d6a3fae4b45d50c5ffd4f7"
},
}, ......
我尝试了很多方法,并且用谷歌搜索了很多。 谢谢您的帮助!
感谢Vivek的回答。 有用。
for (var i = 0; i < bundle.entry.length; i++) {
delete bundle.entry[i]._id;
delete bundle.entry[i].__v;
bundle.entry[i].fullname = "Test";
}
bundle.entry是一个数组。 :)
删除第一个元素的_id:
delete bundle.entry[0]._id
删除所有元素的_id和__v:
bundle.entry = bundle.entry.map(function(entry){ var newEntry = { resource: entry.resource, fullname: "fullname here" }; return newEntry; });
请尝试下面的代码。 经过测试可以帮助您。
var object1 = {
"resourceType": "Bundle",
"meta": {
"lastUpdated": "2017-10-06T04:42:22.411Z"
},
"type": "searchset",
"total": "0",
"entry": [
{
"_id": "59d5739e668e9e3fd29aeb0d",
"resource": {
"id": "59d5739e668e9e3fd29aeb0d",
},
"__v": 0
},
{
"_id": "59d6a3fae4b45d50c5ffd4f7",
"resource": {
"id": "59d6a3fae4b45d50c5ffd4f7"
},
"__v": 0
},
{
"_id": "59d6a831e4b45d50c5ffd4fa",
"resource": {
"id": "59d6a831e4b45d50c5ffd4fa"
},
"__v": 0
}
]
};
var array1=['Apple','Orange','Gava']
function a(){
for(var i=0;i<object1.entry.length;i++){
delete object1.entry[i]._id;
delete object1.entry[i].__v;
object1.entry[i].fullname = array1[i];
}
console.log(object);
}
const fullNameList = ['Apple', 'Orange', 'Guava']
delete bundle.meta
bundle.entry = bundle.entry.map((item, index) => {
const {__v, _id, ...restObj } = item;
restObj.fullname = fullNameList[index]
return restObj;
})
注意fullNameList
的长度和bundle.entry
的长度必须相同
您可以使用地图功能并从对象中删除键,并在同一功能中添加键,如下所示:
var data = { "resourceType": "Bundle", "meta": { "lastUpdated": "2017-10-06T04:42:22.411Z" }, "type": "searchset", "total": "0", "entry": [ { "_id": "59d5739e668e9e3fd29aeb0d", "resource": { "id": "59d5739e668e9e3fd29aeb0d" }, "__v": 0 }, { "_id": "59d6a3fae4b45d50c5ffd4f7", "resource": { "id": "59d6a3fae4b45d50c5ffd4f7" }, "__v": 0 }, { "_id": "59d6a831e4b45d50c5ffd4fa", "resource": { "id": "59d6a831e4b45d50c5ffd4fa" }, "__v": 0 } ] } var names = ['A','B','C']; var counter = 0; data.entry = data.entry.map(function(obj){ delete obj['_id'] delete obj['__v'] obj.fullname = names[counter] counter++ ; return obj }); console.log(data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.