将嵌套值添加到关联数组 - JS

时间:2017-03-15 22:37:07

标签: javascript jquery arrays object

只要坚持这一点,任何帮助都将不胜感激。

我有一个像这样的关联数组:

var player = {
  source: {
    item1: value,
    item2: value,
    item3: {
      item3-1: value
    }
  },
  playback: {
    parameter1: value,
    parameter2: value,
  }
}

我尝试做的是将值添加到player.source中,如下所示:

player.source.item4.item4-1 = 'something'

这样,player.source看起来像这样:

  source: {
    item1: value,
    item2: value,
    item3: {
      item3-1: value
    },
    item4: {
      item4-1: 'something',
    },
  },

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我不确定它是不是lil'有点过于复杂,但似乎有效。



var player = {source:{item1:"value",item2:"value",item3:{"item3-1":"value"}},playback:{parameter1:"value",parameter2:"value"}},
    obj = {
      'item4-1': 'something'
    };

    player.source.item4 = obj;
    console.log(player);




答案 1 :(得分:1)

你可以这样做 - 只需创建一个函数,通常将属性/值添加到对象。如果属性已存在,则只会覆盖该值。

var value = 5;
var player = {
  source: {
    item1: value,
    item2: value,
    item3: {
      "item3-1": value
    }
  },
  playback: {
    parameter1: value,
    parameter2: value,
  }
}

function addProperty(obj, categoryName, value) {
  obj[categoryName] = value;
  return obj;
}

addProperty(player.source, "item4", addProperty({}, "item4-1", value));
console.log(player);

要添加后续属性/值,您可以访问对象上新创建的属性,如下所示:

addProperty(player.source.item4, "item4-2", 6);
addProperty(player.source.item4, "item4-3", 7);
// etc...