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

时间:2012-02-22 16:12:17

标签: javascript json

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

ary.push({name: val});

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

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

5 个答案:

答案 0 :(得分:158)

在ES6 ......

在ES6中,您可以使用destructuring assignment;

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

然而,鉴于这是ES6语法,通常的警告适用; this will not work in some browsers(值得注意的是,IE和Edge 13)......虽然Babel会为你提供这个。


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

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

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] });
  }
}
相关问题