将动态键、值对添加到JavaScript数组或哈希表中

Add dynamic key, value pairs to JavaScript array or hash table

本文关键字:数组 JavaScript 哈希表 添加 动态      更新时间:2023-09-26

我正在尝试向现有的javascript关联数组添加一个键值对。密钥必须是一个变量。这是用于JSON编码的。我意识到有很多插件和框架,但我想要一个简单的答案。

ary.push({name: val});

其中ary是新数组,name是包含关键字的变量,val是该条目的值。

我在一个jQuery循环中执行此操作,该循环遍历表单字段。

在ES6中

在ES6中,可以使用析构函数赋值;

ary.push({[name]: val});

然而,考虑到这是ES6语法,通常需要注意事项;这在某些浏览器中不起作用(值得注意的是,IE和Edge 13)。。。尽管巴贝尔会替你转写这个。


没有ES6(传统浏览器支持)

您需要定义一个对象,并使用方括号表示法来设置属性;

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

"关联数组"实际上只是一个对象。你不使用推送,你只需为对象分配属性:

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-beege":"../dist/css/uikit.或.black-beijet.css"}