我正在尝试向一个已有的 JavaScript 关联数组中添加一个键值对。这个键需要是一个变量。这是为了进行 JSON 编码。我知道有很多插件和框架可以做到这一点,但我想要一个简单的答案。
ary.push({name: val});
这里的ary
是一个新数组,name
是包含键的变量,val
是此条目的值。
我正在使用jQuery
循环遍历表单字段。
我正在尝试向一个已有的 JavaScript 关联数组中添加一个键值对。这个键需要是一个变量。这是为了进行 JSON 编码。我知道有很多插件和框架可以做到这一点,但我想要一个简单的答案。
ary.push({name: val});
这里的ary
是一个新数组,name
是包含键的变量,val
是此条目的值。
我正在使用jQuery
循环遍历表单字段。
你可以使用 解构赋值;
ary.push({[name]: val});
然而,考虑到这是ES6语法,通常的警告仍然适用;在某些浏览器(尤其是IE和Edge 13)中无法使用...但Babel可以将其转换。
您需要定义一个对象,并使用方括号表示法来设置属性;
var obj = {};
obj[name] = val;
ary.push(obj);
如果你想深入了解,可以查看这篇文章,介绍方括号和点表示法之间的区别。$test = array(); $test[] = array ("description" => "first", "identifier" => "1");
。在JavaScript中,要添加到其中只需使用 var obj = {}; obj["description"] = "second"; obj["identifier"] = 2; ary.push(obj);
,其中ary是分配给PHP数组的JavaScript变量。 - Gravitoidvar ary = [];
function pushToAry(name, val) {
var obj = {};
obj[name] = val;
ary.push(obj);
}
pushToAry("myName", "myVal");
仔细阅读您的问题后,您所需要的只是以下代码:
$(your collection of form els).serializeArray();
好老的 jQuery
“关联数组”实际上只是一个对象。您不使用push,而是将属性分配给对象:
ary[name] = val;
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] });
}
}
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"}
翻译为:JSON格式:{"黑色-米色":"../dist/css/uikit.or.black-beige.css"}。
ary
= [ key: value, key: value, ...] 还是ary = [{key: value}, {key: value}, ... ]
? - wheresrhys