Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将动态键映射到Javascript数组中的值_Javascript - Fatal编程技术网

将动态键映射到Javascript数组中的值

将动态键映射到Javascript数组中的值,javascript,Javascript,我需要将一个对象数组映射为以下格式: "Brandenburg Gate, Berlin": {latitude: 52.516272, longitude: 13.377722}, "Dortmund U-Tower": {latitude: 51.515, longitude: 7.453619}, "London Eye": {latitude: 51.503333, longitude: -0.119722},

我需要将一个对象数组映射为以下格式:

             "Brandenburg Gate, Berlin": {latitude: 52.516272, longitude: 13.377722},
             "Dortmund U-Tower": {latitude: 51.515, longitude: 7.453619},
             "London Eye": {latitude: 51.503333, longitude: -0.119722},
             "Kremlin, Moscow": {latitude: 55.751667, longitude: 37.617778},
             "Eiffel Tower, Paris": {latitude: 48.8583, longitude: 2.2945},
             "Riksdag building, Stockholm": {latitude: 59.3275, longitude: 18.0675},
             "Royal Palace, Oslo": {latitude: 59.916911, longitude: 10.727567}
             }
我的源数组看起来像什么

{place: "Brandenburg Gate, Berlin", latitude: 52.5, longitude 13.3   }
我不知道如何使
place
成为数组的键

_.map(a, function (m) {return m.place: {longitude: m.longitude}})

显然是错误的。

预期的结果是什么

也许:

_.map(a, function (m) {
  return {"place":m.place, "longitude": m.longitude}
})

预期的结果是什么

也许:

_.map(a, function (m) {
  return {"place":m.place, "longitude": m.longitude}
})

迭代数组,将每个值添加到对象并删除
place
属性:

var obj = {};
arr.forEach(function(value) {
    obj[value.place] = value;
    delete value.place;
});

迭代数组,将每个值添加到对象并删除
place
属性:

var obj = {};
arr.forEach(function(value) {
    obj[value.place] = value;
    delete value.place;
});

我假设你有一个对象数组?如果是这样,这将起作用(假设您使用的是基于u.map()的下划线):


这将为您提供一个对象,其中键是位置,关联的值本身就是包含纬度和经度的对象

我假设你有一个对象数组?如果是这样,这将起作用(假设您使用的是基于u.map()的下划线):

这将为您提供一个对象,其中键是位置,关联的值本身就是包含纬度和经度的对象

试试看:

var result = {};
a.forEach(function (item) {
   result[item.place] = {longitude: item.longitude, latitude: item.latitude};
});
尝试:


您可以尝试使用obj.map()并重新映射所有元素

以下是一个例子:

<script type="text/javascript">
function experiment() {
var obj = [{place: "Brandenburg Gate, Berlin", latitude: 52.5, longitude: 13.3},
       {place: "Dortmund U-Tower", latitude: 51.515, longitude: 7.453619},
       {place: "London Eye", latitude: 51.503333, longitude: -0.119722}];

/* Mapped Output
"Brandenburg Gate, Berlin": {latitude: 52.516272, longitude: 13.377722},
"Dortmund U-Tower": {latitude: 51.515, longitude: 7.453619},
"London Eye": {latitude: 51.503333, longitude: -0.119722},
*/

// create a new object array
var reformattedArray = obj.map(function(o){ 
    var rObj = {};
    rObj[o.place] = {latitude : o.latitude, longitude : o.longitude};
    return rObj;
});
}
window.onload = experiment;
</script>

函数实验(){
var obj=[{地点:柏林勃兰登堡门],纬度:52.5,经度:13.3},
{地点:“多特蒙德U塔”,纬度:51.515,经度:7.453619},
{地点:“伦敦眼”,纬度:51.503333,经度:-0.119722}];
/*映射输出
“柏林勃兰登堡门”:{纬度:52.516272,经度:13.377722},
“多特蒙德U形塔”:{纬度:51.515,经度:7.453619},
“伦敦眼”:{纬度:51.503333,经度:-0.119722},
*/
//创建一个新的对象数组
var reformattedArray=obj.map(函数(o){
var rObj={};
rObj[o.place]={纬度:o.lation,经度:o.longide};
返回rObj;
});
}
window.onload=实验;

您可以尝试使用obj.map()并重新映射所有元素

以下是一个例子:

<script type="text/javascript">
function experiment() {
var obj = [{place: "Brandenburg Gate, Berlin", latitude: 52.5, longitude: 13.3},
       {place: "Dortmund U-Tower", latitude: 51.515, longitude: 7.453619},
       {place: "London Eye", latitude: 51.503333, longitude: -0.119722}];

/* Mapped Output
"Brandenburg Gate, Berlin": {latitude: 52.516272, longitude: 13.377722},
"Dortmund U-Tower": {latitude: 51.515, longitude: 7.453619},
"London Eye": {latitude: 51.503333, longitude: -0.119722},
*/

// create a new object array
var reformattedArray = obj.map(function(o){ 
    var rObj = {};
    rObj[o.place] = {latitude : o.latitude, longitude : o.longitude};
    return rObj;
});
}
window.onload = experiment;
</script>

函数实验(){
var obj=[{地点:柏林勃兰登堡门],纬度:52.5,经度:13.3},
{地点:“多特蒙德U塔”,纬度:51.515,经度:7.453619},
{地点:“伦敦眼”,纬度:51.503333,经度:-0.119722}];
/*映射输出
“柏林勃兰登堡门”:{纬度:52.516272,经度:13.377722},
“多特蒙德U形塔”:{纬度:51.515,经度:7.453619},
“伦敦眼”:{纬度:51.503333,经度:-0.119722},
*/
//创建一个新的对象数组
var reformattedArray=obj.map(函数(o){
var rObj={};
rObj[o.place]={纬度:o.lation,经度:o.longide};
返回rObj;
});
}
window.onload=实验;

您确定这是一个数组吗?它看起来像JSONme@beautifulcoder:绝对不是JSON,数据的接收/编码方式与问题无关。您确定这是一个数组吗?它看起来像JSONme@beautifulcoder:绝对不是JSON,数据的接收/编码方式与问题无关。谢谢-我从来没有想过这样做。谢谢-我从来没有想过那样做。