我有一个空数组。我试图将键值对推入数组,但它会引用引号。如何在没有引号的情况下发送它?
这是我的代码:
var Array_1 = [];
Array_1.push("{ " + configJsonArray[k].name + ":" + "'" + customerData[j][L].value + "'" + ", type:" + "'" + configJsonArray[k].type + "'" + " }");
// configJsonArray[k].name -- key from another array
// customerData[j][L].value -- value from another array
我期待的结果 [{total:' 30',type:' cart' },{customerId:' 4',输入:' info' }]
我得到的结果 [" {total:' 30',输入:' cart' }"," {customerId:' 4',输入:' info' }"]
答案 0 :(得分:2)
您想要推送一个对象,而不是一个字符串(尽管是一个对象的字符串)
ar Array_1 = [];
var objToPush = {};
objToPush[configJsonArray[k].name] = customerData[j] [L].value;
Array_1.push(objToPush);
答案 1 :(得分:1)
您正在创建字符串而不是对象。您可以创建对象并将其推入阵列。
var Array_1 = [];
var temp = {};
temp[configJsonArray[k].name] = customerData[j][L].value;
temp["type"] = configJsonArray[k].type;
Array_1.push(temp);
答案 2 :(得分:1)
你正在推一个字符串,不会被神奇地评估。
您应该使用object initializer。
而不是字符串在ES6中,您可以使用computed property names将其属性名称设置为变量的值:
var Array_1 = [{
[configJsonArray[k].name]: customerData[j][L].value,
type: configJsonArray[k].type
});