gpt4 book ai didi

javascript - 将某些值从一个 JSON 对象添加到另一个对象

转载 作者:行者123 更新时间:2023-11-29 23:05:17 25 4
gpt4 key购买 nike

我试图笨拙地将某些值从 JSON 对象添加到新的 JSON 对象。因为我正在使用的当前地理编码器似乎没有提供有效的 geoJSON 以供在 map 加载功能中使用。那么我可以向新对象添加允许的值以便可以查询吗?

我有一个 geoCoder 的返回结果,我使用它去除了值

var businessLoc = JSON.stringify(business1);

permittedValues = [].concat(
...business1.map(v => [
"type:" + v.type + ",",
"geometry{" + v.geometry + "}"
])
);

console.log(permittedValues);

var newObj = {
type: "FeatureCollection",
features: [{

}]
};

var jsonObj = {};

features = newObj.features.geometry;

for (i = 0; i < permittedValues.length; i++) {
newObj.features[i] = permittedValues[i];
}

console.log(newObj);

map.addSource("sample", {
type: "geojson",
data: newObj
});

结果

0: "type:Feature,"
1: "geometry{[object Object]}"
2: "type:Feature,"
3: "geometry{[object Object]}"
4: "type:Feature,"
5: "geometry{[object Object]}"
6: "type:Feature,"
7: "geometry{[object Object]}"
8: "type:Feature,"
9: "geometry{[object Object]}"
10: "type:Feature,"
11: "geometry{[object Object]}"
12: "type:Feature,"
13: "geometry{[object Object]}"

我想要什么

  {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-77.034084142948,
38.909671288923
]
},

业务对象

[
{
"id": "place.5130493894212350",
"type": "Feature",
"place_type": [
"place"
],
"relevance": 0.5,
"properties": {
"wikidata": "Q1707"
},
"text": "Kiel",
"place_name": "Kiel, Schleswig-Holstein, Germany",
"bbox": [
10.033079,
54.250613,
10.218225,
54.43281
],
"center": [
10.14056,
54.32528
],
"geometry": {
"type": "Point",
"coordinates": [
10.14056,
54.32528
]
},
"context": [
{
"id": "region.3063011031043490",
"short_code": "DE-SH",
"wikidata": "Q1194",
"text": "Schleswig-Holstein"
},
{
"id": "country.10743216036480410",
"short_code": "de",
"wikidata": "Q183",
"text": "Germany"
}
]
},
{
"id": "address.8335542519828468",
"type": "Feature",
"place_type": [
"address"
],
"relevance": 0.99,
"properties": {
"accuracy": "street"
},
"text": "University Roundabout",
"place_name": "University Roundabout, Bournemouth, Bournemouth, BH12 5EQ, United Kingdom",
"center": [
-1.898631,
50.744119
],
"geometry": {
"type": "Point",
"coordinates": [
-1.898631,
50.744119
]
},
"context": [
{
"id": "postcode.17127909006362680",
"text": "BH12 5EQ"
},
{
"id": "locality.9889701754251510",
"wikidata": "Q170478",
"text": "Bournemouth"
},
{
"id": "place.6137039763504313",
"wikidata": "Q170478",
"text": "Bournemouth"
},
{
"id": "district.18683624152369430",
"wikidata": "Q203349",
"text": "Poole"
},
{
"id": "region.11773787231453920",
"short_code": "GB-ENG",
"wikidata": "Q21",
"text": "England"
},
{
"id": "country.8605848117814600",
"short_code": "gb",
"wikidata": "Q145",
"text": "United Kingdom"
}
]
},
{
"id": "address.8335542519828468",
"type": "Feature",
"place_type": [
"address"
],
"relevance": 0.99,
"properties": {
"accuracy": "street"
},
"text": "University Roundabout",
"place_name": "University Roundabout, Bournemouth, Bournemouth, BH12 5EQ, United Kingdom",
"center": [
-1.898631,
50.744119
],
"geometry": {
"type": "Point",
"coordinates": [
-1.898631,
50.744119
]
},
"context": [
{
"id": "postcode.17127909006362680",
"text": "BH12 5EQ"
},
{
"id": "locality.9889701754251510",
"wikidata": "Q170478",
"text": "Bournemouth"
},
{
"id": "place.6137039763504313",
"wikidata": "Q170478",
"text": "Bournemouth"
},
{
"id": "district.18683624152369430",
"wikidata": "Q203349",
"text": "Poole"
},
{
"id": "region.11773787231453920",
"short_code": "GB-ENG",
"wikidata": "Q21",
"text": "England"
},
{
"id": "country.8605848117814600",
"short_code": "gb",
"wikidata": "Q145",
"text": "United Kingdom"
}
]
},
{
"id": "postcode.13814443524261080",
"type": "Feature",
"place_type": [
"postcode"
],
"relevance": 0.5,
"properties": {},
"text": "PH1 1RX",
"place_name": "PH1 1RX, Perth, Perth And Kinross, Scotland, United Kingdom",
"center": [
-3.48232183369072,
56.3888139521762
],
"geometry": {
"type": "Point",
"coordinates": [
-3.48232183369072,
56.3888139521762
]
},
"context": [
{
"id": "place.8737048398313509",
"wikidata": "Q203000",
"text": "Perth"
},
{
"id": "district.15421108926775810",
"wikidata": "Q207679",
"text": "Perth And Kinross"
},
{
"id": "region.7992878537156640",
"short_code": "GB-SCT",
"wikidata": "Q22",
"text": "Scotland"
},
{
"id": "country.8605848117814600",
"short_code": "gb",
"wikidata": "Q145",
"text": "United Kingdom"
}
]
},
{
"id": "place.10346294296913350",
"type": "Feature",
"place_type": [
"place"
],
"relevance": 0.25,
"properties": {
"wikidata": "Q1496283"
},
"text": "Moreno",
"place_name": "Moreno, Buenos Aires, Argentina",
"bbox": [
-58.890257,
-34.686207,
-58.713205,
-34.508089
],
"center": [
-58.78724,
-34.65762
],
"geometry": {
"type": "Point",
"coordinates": [
-58.78724,
-34.65762
]
},
"context": [
{
"id": "region.15410301253886620",
"short_code": "AR-B",
"wikidata": "Q44754",
"text": "Buenos Aires"
},
{
"id": "country.10192800254801190",
"short_code": "ar",
"wikidata": "Q414",
"text": "Argentina"
}
]
},
{
"id": "place.10346294296913350",
"type": "Feature",
"place_type": [
"place"
],
"relevance": 0.25,
"properties": {
"wikidata": "Q1496283"
},
"text": "Moreno",
"place_name": "Moreno, Buenos Aires, Argentina",
"bbox": [
-58.890257,
-34.686207,
-58.713205,
-34.508089
],
"center": [
-58.78724,
-34.65762
],
"geometry": {
"type": "Point",
"coordinates": [
-58.78724,
-34.65762
]
},
"context": [
{
"id": "region.15410301253886620",
"short_code": "AR-B",
"wikidata": "Q44754",
"text": "Buenos Aires"
},
{
"id": "country.10192800254801190",
"short_code": "ar",
"wikidata": "Q414",
"text": "Argentina"
}
]
},
{
"id": "address.4377709491448262",
"type": "Feature",
"place_type": [
"address"
],
"relevance": 0.3205128205128205,
"properties": {
"accuracy": "street"
},
"text": "Fr Access",
"place_name": "Fr Access, Lubbock, Texas 79413, United States",
"matching_text": "University Off",
"matching_place_name": "University Off, Lubbock, Texas 79413, United States",
"center": [
-101.870484,
33.541972
],
"geometry": {
"type": "Point",
"coordinates": [
-101.870484,
33.541972
]
},
"context": [
{
"id": "neighborhood.2103733",
"text": "Caprock"
},
{
"id": "postcode.11511121744851560",
"text": "79413"
},
{
"id": "place.2344342379218940",
"wikidata": "Q49273",
"text": "Lubbock"
},
{
"id": "region.5362387429342410",
"short_code": "US-TX",
"wikidata": "Q1439",
"text": "Texas"
},
{
"id": "country.9053006287256050",
"short_code": "us",
"wikidata": "Q30",
"text": "United States"
}
]
}
]

什么接近工作

permittedValues = [].concat(...business1.map((v) => [v.geometry]))



var newObj = {
type: "FeatureCollection",
features:[{
type:'Feature',
geometry:permittedValues[0]
}]
};

最佳答案

在创建 permittedValues 时不要使用字符串连接,只需提取您想要的属性即可。

var permittedValues = business1.map(({type, geometry}) => ({type, geometry}));
var newObj = {
type: "FeatureCollection",
features: permittedValues
};

var business1 = [
{
"id": "place.5130493894212350",
"type": "Feature",
"place_type": [
"place"
],
"relevance": 0.5,
"properties": {
"wikidata": "Q1707"
},
"text": "Kiel",
"place_name": "Kiel, Schleswig-Holstein, Germany",
"bbox": [
10.033079,
54.250613,
10.218225,
54.43281
],
"center": [
10.14056,
54.32528
],
"geometry": {
"type": "Point",
"coordinates": [
10.14056,
54.32528
]
},
"context": [
{
"id": "region.3063011031043490",
"short_code": "DE-SH",
"wikidata": "Q1194",
"text": "Schleswig-Holstein"
},
{
"id": "country.10743216036480410",
"short_code": "de",
"wikidata": "Q183",
"text": "Germany"
}
]
},
{
"id": "address.8335542519828468",
"type": "Feature",
"place_type": [
"address"
],
"relevance": 0.99,
"properties": {
"accuracy": "street"
},
"text": "University Roundabout",
"place_name": "University Roundabout, Bournemouth, Bournemouth, BH12 5EQ, United Kingdom",
"center": [
-1.898631,
50.744119
],
"geometry": {
"type": "Point",
"coordinates": [
-1.898631,
50.744119
]
},
"context": [
{
"id": "postcode.17127909006362680",
"text": "BH12 5EQ"
},
{
"id": "locality.9889701754251510",
"wikidata": "Q170478",
"text": "Bournemouth"
},
{
"id": "place.6137039763504313",
"wikidata": "Q170478",
"text": "Bournemouth"
},
{
"id": "district.18683624152369430",
"wikidata": "Q203349",
"text": "Poole"
},
{
"id": "region.11773787231453920",
"short_code": "GB-ENG",
"wikidata": "Q21",
"text": "England"
},
{
"id": "country.8605848117814600",
"short_code": "gb",
"wikidata": "Q145",
"text": "United Kingdom"
}
]
},
{
"id": "address.8335542519828468",
"type": "Feature",
"place_type": [
"address"
],
"relevance": 0.99,
"properties": {
"accuracy": "street"
},
"text": "University Roundabout",
"place_name": "University Roundabout, Bournemouth, Bournemouth, BH12 5EQ, United Kingdom",
"center": [
-1.898631,
50.744119
],
"geometry": {
"type": "Point",
"coordinates": [
-1.898631,
50.744119
]
},
"context": [
{
"id": "postcode.17127909006362680",
"text": "BH12 5EQ"
},
{
"id": "locality.9889701754251510",
"wikidata": "Q170478",
"text": "Bournemouth"
},
{
"id": "place.6137039763504313",
"wikidata": "Q170478",
"text": "Bournemouth"
},
{
"id": "district.18683624152369430",
"wikidata": "Q203349",
"text": "Poole"
},
{
"id": "region.11773787231453920",
"short_code": "GB-ENG",
"wikidata": "Q21",
"text": "England"
},
{
"id": "country.8605848117814600",
"short_code": "gb",
"wikidata": "Q145",
"text": "United Kingdom"
}
]
},
{
"id": "postcode.13814443524261080",
"type": "Feature",
"place_type": [
"postcode"
],
"relevance": 0.5,
"properties": {},
"text": "PH1 1RX",
"place_name": "PH1 1RX, Perth, Perth And Kinross, Scotland, United Kingdom",
"center": [
-3.48232183369072,
56.3888139521762
],
"geometry": {
"type": "Point",
"coordinates": [
-3.48232183369072,
56.3888139521762
]
},
"context": [
{
"id": "place.8737048398313509",
"wikidata": "Q203000",
"text": "Perth"
},
{
"id": "district.15421108926775810",
"wikidata": "Q207679",
"text": "Perth And Kinross"
},
{
"id": "region.7992878537156640",
"short_code": "GB-SCT",
"wikidata": "Q22",
"text": "Scotland"
},
{
"id": "country.8605848117814600",
"short_code": "gb",
"wikidata": "Q145",
"text": "United Kingdom"
}
]
},
{
"id": "place.10346294296913350",
"type": "Feature",
"place_type": [
"place"
],
"relevance": 0.25,
"properties": {
"wikidata": "Q1496283"
},
"text": "Moreno",
"place_name": "Moreno, Buenos Aires, Argentina",
"bbox": [
-58.890257,
-34.686207,
-58.713205,
-34.508089
],
"center": [
-58.78724,
-34.65762
],
"geometry": {
"type": "Point",
"coordinates": [
-58.78724,
-34.65762
]
},
"context": [
{
"id": "region.15410301253886620",
"short_code": "AR-B",
"wikidata": "Q44754",
"text": "Buenos Aires"
},
{
"id": "country.10192800254801190",
"short_code": "ar",
"wikidata": "Q414",
"text": "Argentina"
}
]
},
{
"id": "place.10346294296913350",
"type": "Feature",
"place_type": [
"place"
],
"relevance": 0.25,
"properties": {
"wikidata": "Q1496283"
},
"text": "Moreno",
"place_name": "Moreno, Buenos Aires, Argentina",
"bbox": [
-58.890257,
-34.686207,
-58.713205,
-34.508089
],
"center": [
-58.78724,
-34.65762
],
"geometry": {
"type": "Point",
"coordinates": [
-58.78724,
-34.65762
]
},
"context": [
{
"id": "region.15410301253886620",
"short_code": "AR-B",
"wikidata": "Q44754",
"text": "Buenos Aires"
},
{
"id": "country.10192800254801190",
"short_code": "ar",
"wikidata": "Q414",
"text": "Argentina"
}
]
},
{
"id": "address.4377709491448262",
"type": "Feature",
"place_type": [
"address"
],
"relevance": 0.3205128205128205,
"properties": {
"accuracy": "street"
},
"text": "Fr Access",
"place_name": "Fr Access, Lubbock, Texas 79413, United States",
"matching_text": "University Off",
"matching_place_name": "University Off, Lubbock, Texas 79413, United States",
"center": [
-101.870484,
33.541972
],
"geometry": {
"type": "Point",
"coordinates": [
-101.870484,
33.541972
]
},
"context": [
{
"id": "neighborhood.2103733",
"text": "Caprock"
},
{
"id": "postcode.11511121744851560",
"text": "79413"
},
{
"id": "place.2344342379218940",
"wikidata": "Q49273",
"text": "Lubbock"
},
{
"id": "region.5362387429342410",
"short_code": "US-TX",
"wikidata": "Q1439",
"text": "Texas"
},
{
"id": "country.9053006287256050",
"short_code": "us",
"wikidata": "Q30",
"text": "United States"
}
]
}
];

var permittedValues = business1.map(({type, geometry}) => ({type, geometry}));
var newObj = {
type: "FeatureCollection",
features: permittedValues
};

console.log(newObj);

关于javascript - 将某些值从一个 JSON 对象添加到另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54873946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com