如何动态创建对象?
问题描述:
这里是我的代码:如何动态创建对象?
var parts = ['Identifiers', 'Names', 'Emails'];
window["identifier_websites"] = ["aparat", "youtube", "telegram"];
window["name_websites"] = ["twitter", "instagram", "googleplus", "facebook", "linkedin", "cloob", "*", "hammihan", "lenzor", "delgoo"];
window["email_websites"] = ["email", "gmail", "aol", "chmail"];
我要动态地做出这样的:
{"Identifiers":identifier_websites, "Names":name_websites, "Emails":email_websites}
就是干这个可能吗?
答
当然,js是动态语言,所以这不仅是可能的,而且被广泛使用,您可以在节点REPL中尝试像这样的片段,只需在终端中键入节点即可。
答
如果您尝试动态地走路零件以创建一个对象,就这样做。
parts.reduce((acc, k) => {
var singular = k.substr(0, k.length - 1).toLowerCase() + "_websites";
acc[k] = window[singular];
return acc;
}, {});
答
此功能来这里Convert Array to Object,你刚刚从一个新添加的所有阵列到所有这些合并成一个和后使用。
//var result = new Map(arr.map((i) => [i.key, i.val]));
var parts = ['Identifiers', 'Names', 'Emails'];
var myArrays = [];
window["identifier_websites"] = ["aparat", "youtube", "telegram"];
window["name_websites"] = ["twitter", "instagram", "googleplus", "facebook", "linkedin", "cloob", "*", "hammihan", "lenzor", "delgoo"];
window["email_websites"] = ["email", "gmail", "aol", "chmail"];
myArrays.push(window.identifier_websites, window.name_websites, window.email_websites);
//console.log(myArrays);
var obj =myArrays.reduce(function(acc, cur, i) {
acc[parts[i]] = cur;
return acc;
}, {});
console.log(obj)
+0
谢谢...给予好评 –
这里是exapmle:https://i.stack.imgur.com/piNHE.png – Yarick