将数组值转换为对象,根据索引位置添加键

时间:2019-05-04 00:20:47

标签: javascript arrays handlebars.js underscore.js

我在车把模板中使用数据源。当我获取数据时,结果对象包含嵌套数组,例如:

["10004", "Some title", "Some Description", "$19.95", "Some other text here..."]

我想将数组值转换为对象并设置/访问对象键(这包含在车把模板中)。任何建议都有帮助。 ty!

有关更多信息:这是我到目前为止构建的。

// data from API http response is var data

let dataObj = {};
    dataObj =
      _.chain(data)
      .values()
      .map(function(el){
        return {'product': el};
      });

我的结果是这样的:

{"products": [
     {
         "product":[
            "123456",
            "Some title",
            "Some descritpion.Lorem ipsum"
         ]
      }
]};

但是我要寻找的是:

{
   "products":[
      {
         "product":[
            {
               "id":"123456"
            },
            {
               "title":"Some title"
            },
            {
               "description":"Some descritpion.Lorem ipsum"
            },
            {
               "price":"$103.05"
            }
         ]
      }
   ]
}

编辑:再次感谢您的光临!

1 个答案:

答案 0 :(得分:1)

在这种情况下,您可以创建一个简单的转换函数并重新使用它。

function convert(data){
       return {
          product: [{
             id: data[0],
             title: data[1],
             description: data[2],
             price: data[3]
          }]
       }
    }

let data = ["10004", "Some title", "Some Description", "$19.95", "Some other text here..."];

function convert(data){
   return {
      product: [{
         id: data[0],
         title: data[1],
         description: data[2],
         price: data[3]
      }]
   }
}

console.log(convert(data))