简体   繁体   English

从JavaScript中的两个数组生成对象数组

[英]Generate array of objects from two arrays in JavaScript

I've got 2 arrays: 我有2个数组:

var arrToObjContent = ["DAYOFWEEK","ITEM","QTY","DATEOFPURCHASE","CITY"]
var dayOfWeek="["SUN","MON","TUE","WED","THU","FRI","SAT"]

I've been trying to create an object array using the above two arrays that looks like this: 我一直在尝试使用上面的两个数组创建对象数组,如下所示:

{
"DAYOFWEEK":"SUN"
"ITEM":"",
"QTY":"",
"DATEOFPURCHASE":"",
"CITY":""
},    {
"DAYOFWEEK":"MON"
"ITEM":"",
"QTY":"",
"DATEOFPURCHASE":"",
"CITY":""
},{
"DAYOFWEEK":"TUE"
"ITEM":"",
"QTY":"",
"DATEOFPURCHASE":"",
"CITY":""
},{
"DAYOFWEEK":"WED"
"ITEM":"",
"QTY":"",
"DATEOFPURCHASE":"",
"CITY":""
},{
"DAYOFWEEK":"THU"
"ITEM":"",
"QTY":"",
"DATEOFPURCHASE":"",
"CITY":""
},{
"DAYOFWEEK":"FRI"
"ITEM":"",
"QTY":"",
"DATEOFPURCHASE":"",
"CITY":""
},{
"DAYOFWEEK":"SAT"
"ITEM":"",
"QTY":"",
"DATEOFPURCHASE":"",
"CITY":""
}

Is there a jQuery/JavaScript built-in function that I can pass two arrays to & get the output as above? 是否有jQuery / JavaScript内置函数,我可以将两个数组传递给并获得上述输出?

It's really not that hard, here you go: 其实并不难,在这里您可以:

var arrToObjContent = ["DAYOFWEEK","ITEM","QTY","DATEOFPURCHASE","CITY"],
    dayOfWeek = ["SUN","MON","TUE","WED","THU","FRI","SAT"],
    i=0,
    z,
    arrToObjLength = arrToObjContent.length,
    dayOfWeekLength = dayOfWeek.length,
    jsonObj = {},
    newObj,
    key,
    value;

for(;i<dayOfWeekLength;i++){
    newObj = {};
    for(z=0;z<arrToObjLength;z++){
        key = arrToObjContent[z];

        if(key === "DAYOFWEEK") {
            value = dayOfWeek[i];
        }   
        else {
            value = "";
        }
        newObj[key] = value;
    }
    jsonObj[i] = newObj;
}

console.table(jsonObj);

FYI, you had some syntax error in your original posted code. 仅供参考,您在原始发布的代码中存在语法错误。

There's no built-in function to do this, but it is fairly straightforward to do on your own. 没有内置函数可以执行此操作,但是您可以很轻松地自己执行操作。

var arrToObjContent = ["DAYOFWEEK","ITEM","QTY","DATEOFPURCHASE","CITY"];
var dayOfWeek=["SUN","MON","TUE","WED","THU","FRI","SAT"];
dayOfWeek.map((x) => {
    var obj = {};
    arrToObjContent.forEach((y) => { obj[y] = (y === "DAYOFWEEK")? x : ""; });
    return obj;
  });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM