转换每个数组值ias javascript中的对象不起作用

时间:2017-05-04 22:57:05

标签: javascript jquery arrays

这是我的阵列:

var country = ["US(+1)","IND(+91)"];

我想以下面的格式转换我的数组:

country = [
    {
      title: "US(+1)",      
    },
    {
      title: "IND(+91)",    
    }
  ]
对于每个数组值,

单词title应该相同。 使用此代码我试图获得上面的预期结果

 var obj = country.reduce(function(o, val) { o['title'][] = val; return o; }, {});

但是我的输出如下所示:只有最后一个索引正在发生

{"title":"IND(+91)"}这是错误的输出,我不想要

2 个答案:

答案 0 :(得分:3)

您可以使用reduce执行此操作,但使用map会更容易:

var country = ["US(+1)","IND(+91)"];
var obj = country.map(function(c){return {title:c}});

console.log("country:", country);
console.log("obj:", obj);

map用于将一组事物转换为另一组事物时,reduce就是当你想要将一系列事物变成一件事时。

答案 1 :(得分:0)

var country = ["US(+1)","IND(+91)"];

我会使用更具描述性的词,因为它是一个国家列表。

var countries = ["US(+1)","IND(+91)"];

但是要回答你的问题,要将数组操作到一个新数组中,我喜欢使用array.map方法:

var objects = countries.map(function(country){ return { title: country } });

以下是地图的文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map?v=control