我正在尝试将键值对添加到现有的javascript关联数组中。关键需要是一个变量。这适用于JSON编码。我意识到有很多插件和框架,但我想要一个简单的答案。
ary.push({name: val});
其中ary
是新数组,name
是包含键的变量,val
是此条目的值。
我在jQuery
循环中执行此操作,该循环遍历表单字段。
答案 0 :(得分:158)
在ES6中,您可以使用destructuring assignment;
ary.push({[name]: val});
然而,鉴于这是ES6语法,通常的警告适用; this will not work in some browsers(值得注意的是,IE和Edge 13)......虽然Babel会为你提供这个。
您需要定义一个对象并使用方括号表示法来设置属性;
var obj = {};
obj[name] = val;
ary.push(obj);
如果您想要更多地阅读它,请参阅this article关于方括号和点符号之间的差异。
答案 1 :(得分:30)
var ary = [];
function pushToAry(name, val) {
var obj = {};
obj[name] = val;
ary.push(obj);
}
pushToAry("myName", "myVal");
刚刚完全阅读了您的问题,您只需要以下内容
$(your collection of form els).serializeArray();
好老jQuery
答案 2 :(得分:24)
"关联数组"真的只是一个对象。您不使用push,只需为对象指定属性:
ary[name] = val;
答案 3 :(得分:1)
const tStyles = [];
for (const i of iStyles) {
const temp = {};
temp[`${style}`] = `../dist/css/uikit.${wFile}.${style}.css`;
tStyles.push(temp);
}
json:{“ black-beige”:“ ../ dist / css / uikit.or.black-beige.css”}
答案 4 :(得分:1)
以下代码将为您提供帮助
ary.push( {[name]: val} );
请参见以下示例
let allData = [{name: "Cat", type: "Animal"}]
let finalData: any = [];
for (let i = 0; i < allData.length; i++)
{
let obj = allData[i];
for (let KEY in obj)
{
//Pushing data to other array as object
this.finalData.push({ [KEY] : obj[KEY] });
}
}