I've got 2 arrays:
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?
gariepy
3,6846 gold badges24 silver badges34 bronze badges
asked Feb 17, 2016 at 23:36
usert4jju7
1,8637 gold badges33 silver badges68 bronze badges
2 Answers 2
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.
answered Feb 18, 2016 at 0:21
Amir
4,8804 gold badges29 silver badges45 bronze badges
Sign up to request clarification or add additional context in comments.
1 Comment
usert4jju7
Thank you Amir. This is quite clear. The problem I had while writing this up was in the mapping part. Cool. Thank you,
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;
});
Comments
lang-js
dayOfWeekis supposed to be an array, you shouldn't have"at the beginning of the value.