I have an object and I want to add new elements inside it and remove some elements
console.log("bookmark", bookmark)
[
{
"__type": "BookmarksApp.Bookmark",
"BookmarkID": 1,
"name": "San Diego, CA",
"xmin": "-13048800",
"ymin": "3844800",
"xmax": "-13037800",
"ymax": "3870400",
"UserID": 6
},
{
"__type": "BookmarksApp.Bookmark",
"BookmarkID": 2,
"name": "Redlands, California",
"xmin": "-13052100",
"ymin": "4024900",
"xmax": "-13041100",
"ymax": "4050500",
"UserID": 6
}
]
I trayed many ways but it doesn't work with me one of them like this:-
bookmarkjson = {
extent: {
xmin: JSON.stringify(bookmark.map(a => a.xmin)),
ymin: JSON.stringify(bookmark.map(a => a.ymin)),
xmax: JSON.stringify(bookmark.map(a => a.xmax)),
ymax: JSON.stringify(bookmark.map(a => a.ymax)),
"spatialreference": {
"wkid": 102100,
"latestwkid": 3857
},
},
name:bookmark.map(a => a.name),
};
the result come like this all objects in one object how can I edit it :-
{
"xmin": "[\"-13048800\",\"-13052100\"]",
"ymin": "[\"3844800\",\"4024900\"]",
"xmax": "[\"-13037800\",\"-13041100\"]",
"ymax": "[\"3870400\",\"4050500\"]",
"spatialreference": {
"wkid": 102100,
"latestwkid": 3857
}
}
how can I change it to be like this
{
first: {
"extent": {
"xmin": -12975100,
"ymin": 3993900,
"xmax": -12964100,
"ymax": 4019500,
"spatialReference": {
"wkid": 102100,
"latestWkid": 3857
}
},
"name": "Palm Springs, CA"
},
second: {
"extent": {
"xmin": -13052100,
"ymin": 4024900,
"xmax": -13041100,
"ymax": 4050500,
"spatialReference": {
"wkid": 102100,
"latestWkid": 3857
}
},
"name": "Redlands, California"
},
}
the bookmark is dynamic can has more than 2 objects
CodePudding user response:
You can try something like this.
let bookmarks = [
{
"__type": "BookmarksApp.Bookmark",
"BookmarkID": 1,
"name": "San Diego, CA",
"xmin": "-13048800",
"ymin": "3844800",
"xmax": "-13037800",
"ymax": "3870400",
"UserID": 6
},
{
"__type": "BookmarksApp.Bookmark",
"BookmarkID": 2,
"name": "Redlands, California",
"xmin": "-13052100",
"ymin": "4024900",
"xmax": "-13041100",
"ymax": "4050500",
"UserID": 6
}
];
let result = bookmarks.map(x => {
let extend =
{
xmin: x.xmin,
ymin: x.ymin,
xmax: x.xmax,
ymax: x.ymax,
spatialreference: {
wkid: 102100,
latestwkid: 3857
},
name: x.name
};
return { extend: extend };
});
console.log(result)
CodePudding user response:
you shoud not type cast it to string with stringify
you have an array of objects, and you want to create another one with the same length. so use map
let newBookmarkObj = bookmarkObj.map(item => {
return {
extend: {
xmin: item.xmin,
ymin: item.ymin,
xmax: item.xmax,
ymax: item.ymax,
spatialReference: {
wkid: 102100,
latestWkid: 3857
}
},
name: item.name
}
})