【问题标题】:Push an object at a key in an object array javascript在对象数组javascript中的键处推送对象
【发布时间】:2016-10-29 14:00:56
【问题描述】:

我有一个存储各种对象的数组。如下所示:

[ 'key2': { id: 'WA3WA9WA2WA4WAdWA1WA2WAb-WAeWAdWAaWAf-4WA1WAaWA6-WA8WA8WAeWAc-WAfWAdWAbWAeWAaWA5WA1WAfWAbWAdWAfWA2',
d: undefined,
x: 520,
y: 120 },
  'Key1': { id: 'WA7WA2WAbWAdWAfWA9WA6WA8-WA7WAdWAeWA4-4WA4WA3WAb-WAaWAdWA4WAe-WA2WAbWAdWA5WA1WA0WA7WAbWA3WAdWAfWA9',
d: undefined,
x: 810,
y: 180 } ]

如何将值压入数组,例如:

['key3':{id:something, d:undefined,x:200,y:400}]

这里的Key1、Key2、Key3都是动态创建并存储在一个变量中的。

【问题讨论】:

标签: javascript arrays javascript-objects


【解决方案1】:

试试看:

var data = [ {'key2': { id: 'WA3WA9WA2WA4WAdWA1WA2WAb-WAeWAdWAaWAf-4WA1WAaWA6-WA8WA8WAeWAc-WAfWAdWAbWAeWAaWA5WA1WAfWAbWAdWAfWA2',
d: undefined,
x: 520,
y: 120 }},
  {'Key1': { id: 'WA7WA2WAbWAdWAfWA9WA6WA8-WA7WAdWAeWA4-4WA4WA3WAb-WAaWAdWA4WAe-WA2WAbWAdWA5WA1WA0WA7WAbWA3WAdWAfWA9',
d: undefined,
x: 810,
y: 180 }} ];

var newObj = {};
newObj.key3 = {};

newObj.key3.id = 'WA3WA9WA2WA4WAdWA1WA2WAb-WAeWAdWAaWAf-4WA1WAaWA6-WA8WA8WAeWAc-WAfWAdWAbWAeWAaWA5WA1WAfWAbWAdWAfWA2';
newObj.key3.d = undefined;
newObj.key3.x = 520;
newObj.key3.y= 120;

data.push(newObj);
console.log(data);

【讨论】:

    【解决方案2】:

    如果我理解正确,这应该是解决方案:https://jsfiddle.net/a7uxd4tk/

    var data1 = [ {'key1': { id: 'a', d: undefined, x: 520, y: 120 }}];
    var data2 =  [ {'key2': { id: 'b', d: undefined, x: 520, y: 120 }}];
    var data3 =  [ {'key3': { id: 'b', d: undefined, x: 520, y: 120 }}];
    var addData = [];
    addData.push(data1[0]);
    addData.push(data2[0]);
    addData.push(data3[0]);
    console.log(addData);
    

    还要注意[ {} ]

    【讨论】:

      【解决方案3】:

      你可以有一个数组

      var a = [{ id: 'WA3WA9WA2WA4WAdWA1WA2WAb-WAeWAdWAaWAf-4WA1WAaWA6-WA8WA8WAeWAc-WAfWAdWAbWAeWAaWA5WA1WAfWAbWAdWAfWA2',
      d: undefined,
      x: 520,
      y: 120 },
      { id: 'WA7WA2WAbWAdWAfWA9WA6WA8-WA7WAdWAeWA4-4WA4WA3WAb-WAaWAdWA4WAe-WA2WAbWAdWA5WA1WA0WA7WAbWA3WAdWAfWA9',
      d: undefined,
      x: 810,
      y: 180 } ]
      

      在这种情况下a.push({...})

      或者一个对象

      var a = { 'key2': { id: 'WA3WA9WA2WA4WAdWA1WA2WAb-WAeWAdWAaWAf-4WA1WAaWA6-WA8WA8WAeWAc-WAfWAdWAbWAeWAaWA5WA1WAfWAbWAdWAfWA2',
      d: undefined,
      x: 520,
      y: 120 },
        'Key1': { id: 'WA7WA2WAbWAdWAfWA9WA6WA8-WA7WAdWAeWA4-4WA4WA3WAb-WAaWAdWA4WAe-WA2WAbWAdWA5WA1WA0WA7WAbWA3WAdWAfWA9',
      d: undefined,
      x: 810,
      y: 180 } }
      

      然后你就可以拥有a.key3 = {...}

      【讨论】:

        【解决方案4】:

        也许你的意思是你有一个像

        var yourObj = { 'key1': ...
          'key2': ...
        }
        

        你想推另一个?如果是的话就去做吧

        yourObj[newKeyGenerated] = theNewObj;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-09
          • 1970-01-01
          • 1970-01-01
          • 2021-08-17
          • 2021-07-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多