Javascript mapping

Javascript mapping

本文关键字:mapping Javascript      更新时间:2023-09-26

在我们的项目中,我们以以下格式从DB获取以下数据。

[
    [
        "ClearDB",
        "test1@test.com",
        "com.test.cleardb"
    ],
    [
        "Cricbuzz",
        "test2@test.com",
        "com.test.cricbuzz"
    ],
    [
        "Hangout",
        "test3@test.com",
        "com.test.hangout"
    ]
]

我想要如下所述的键值格式

[
    {
        "projname": "ClearDB",
        "projmanager": "test1@test.com",
        "package": "com.test.cleardb"
    },
    {
        "projname": "Cricbuzz",
        "projmanager": "test2@test.com",
        "package": "com.test.cricbuzz"
    },
    {
        "projname": "Hangout",
        "projmanager": "test3@test.com",
        "package": "com.test.hangout"
    }
]

请为我提供实现此目的的正确方法。

您可以简单地为每个数组创建一个新对象,并使用map函数创建一个对象数组,如下所示

var keys = ["projname", "projmanager", "package"];
console.log(data.map(function (arr) {
  var obj = {};
  keys.forEach(function (key, idx) { obj[key] = arr[idx]; });
  return obj;
}));

输出

[ { projname: 'ClearDB',
    projmanager: 'test1@test.com',
    package: 'com.test.cleardb' },
  { projname: 'Cricbuzz',
    projmanager: 'test2@test.com',
    package: 'com.test.cricbuzz' },
  { projname: 'Hangout',
    projmanager: 'test3@test.com',
    package: 'com.test.hangout' } ]

with Array.prototype.map

var results = db.map(function (v) {
  return {
     projname: v[0],
     projmanager: v[1],
     package: v[2]
  };
});

假设您从数据库获取的数据存储在变量 'abc' 中

var abc = [];
var output = [];
for(var i = 0; i< abc.length; i++){
    output[i] = {};
    output[i].projname = abc[i][0];
    output[i].projmanager = abc[i][1];
    output[i].package = abc[i][2];
}

注意:"abc"是您存储数据库中数据的变量。

在 ES6 中:

input . map(([projname, projmanager, package]) => ({projname, projmanager, package}));

[]中的部分解构参数map,这是子数组之一,将第一个元素分配给projname,依此类推。{} 中的部分创建并返回一个键为 'projname' 的对象,其值为 projname 等。

如果要将其概括为使用任何字段名称数组 ( ['projname', 'projmanager', 'package'](:

input . map(
  values => 
    values . reduce(
      (result, value, i) => {
        result[fieldnames[i]] = value;
        return result;
      },
      {}
    )
);

如果

var array =[
[
    "ClearDB",
    "test1@test.com",
    "com.test.cleardb"
],
[
    "Cricbuzz",
    "test2@test.com",
    "com.test.cricbuzz"
],
[
    "Hangout",
    "test3@test.com",
    "com.test.hangout"
]
];

然后

var obj = [];
array.each(function(item){ obj.push({"projname": item[0],
                                      "projmanager":item[1], 
                                      "package": item[2]})
});

编辑:

使用 Jquery

var obj = [];
$.each(array,function(key,value){ obj.push({"projname": value[0],
                                      "projmanager":value[1], 
                                      "package": value[2]})
});

使用JavaScript

var obj = [];
array.forEach(function(item){ obj.push({"projname": item[0],
                                      "projmanager":item[1], 
                                      "package": item[2]})
});