我正在尝试给现有的 javascript 关联数组添加一个键值对。密钥需要是一个变量。这是用于 JSON 编码的。我知道有很多插件和框架可以解决这个问题,但是我想要一个简单的答案。
ary.push({name: val});
其中 ary是一个新的数组,name是一个包含键的变量,val是这个条目的值。
ary
name
val
我在一个遍历表单字段的 jQuery循环中执行此操作。
jQuery
“关联数组”实际上只是一个对象,你不用 push,你只需要给对象分配属性:
ary[name] = val;
在 ES6中,你可以使用 破坏性转让;
ary.push({[name]: val});
然而,考虑到这是 ES6语法,通常需要注意的是: 这在某些浏览器中不起作用(显然是 IE 和 Edge 13) ... ... 尽管 Babel 会为您解释这一点。
您需要定义一个对象并使用方括号表示法来设置属性;
var obj = {}; obj[name] = val; ary.push(obj);
如果您有进一步了解它的冲动,请参阅 这篇文章关于方括号和点符号之间的差异。
var ary = []; function pushToAry(name, val) { var obj = {}; obj[name] = val; ary.push(obj); } pushToAry("myName", "myVal");
虽然刚刚完全阅读了你的问题,所有你需要的是以下
$(your collection of form els).serializeArray();
老 JQuery
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”}
下面的代码将帮助您
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] }); } }