将元素从一个对象复制到另一个对象并将其显示为 json
Copy elements from one object to another and show it as json
我有一个对象,我想在其中添加新元素并删除一些元素
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
}
]
我试过很多方法,但对我不起作用,其中一种是这样的:-
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),
};
结果是这样的所有对象都在一个对象中如何编辑它:-
{
"xmin": "[\"-13048800\",\"-13052100\"]",
"ymin": "[\"3844800\",\"4024900\"]",
"xmax": "[\"-13037800\",\"-13041100\"]",
"ymax": "[\"3870400\",\"4050500\"]",
"spatialreference": {
"wkid": 102100,
"latestwkid": 3857
}
}
怎么改成这样
{
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"
},
}
书签是动态的可以有2个以上的对象
你可以试试这样的方法。
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)
您不应该使用 stringify 将其类型转换为字符串
您有一个对象数组,您想要创建另一个具有相同长度的对象。所以使用地图
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
}
})
试试这个 :
const arr = [
{
"__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
}
];
const result = {};
arr.forEach((obj, index) => {
result[index + 1] = {
extent: {
xmin: obj.xmin,
ymin: obj.ymin,
xmax: obj.xmax,
ymax: obj.ymax,
spatialReference: {
wkid: 102100,
latestWkid: 3857
}
},
name: obj.name
};
});
console.log(result);
我有一个对象,我想在其中添加新元素并删除一些元素
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
}
]
我试过很多方法,但对我不起作用,其中一种是这样的:-
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),
};
结果是这样的所有对象都在一个对象中如何编辑它:-
{
"xmin": "[\"-13048800\",\"-13052100\"]",
"ymin": "[\"3844800\",\"4024900\"]",
"xmax": "[\"-13037800\",\"-13041100\"]",
"ymax": "[\"3870400\",\"4050500\"]",
"spatialreference": {
"wkid": 102100,
"latestwkid": 3857
}
}
怎么改成这样
{
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"
},
}
书签是动态的可以有2个以上的对象
你可以试试这样的方法。
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)
您不应该使用 stringify 将其类型转换为字符串
您有一个对象数组,您想要创建另一个具有相同长度的对象。所以使用地图
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
}
})
试试这个 :
const arr = [
{
"__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
}
];
const result = {};
arr.forEach((obj, index) => {
result[index + 1] = {
extent: {
xmin: obj.xmin,
ymin: obj.ymin,
xmax: obj.xmax,
ymax: obj.ymax,
spatialReference: {
wkid: 102100,
latestWkid: 3857
}
},
name: obj.name
};
});
console.log(result);