如何在javascript对象中向一个键添加许多值

时间:2015-10-28 01:51:15

标签: javascript

我有一个对象var obj = {key1: "value1", key2: "value2"};我想为key1或key2添加多个值或值数组,例如   var obj = {key1: "arrayOfValues", key2: "value2"};有可能吗?基本上我想把它发送给php进行处理。

3 个答案:

答案 0 :(得分:10)

您可以通过两种方式制作对象。

  1. 点符号
  2. 括号符号
  3. 您也可以使用/不使用初始大小来定义数组中的值。 对于方案一,您可以在最坏的情况下执行以下操作:

    var obj = {}
    obj.key1 = new Array();
    obj.key2 = new Array();
    // some codes related to your program
    obj.key1.push(value1);
    // codes ....
    obj.key1.push(value);
    // ... same for the rest of values that you want to add to key1 and other key-values
    

    如果你想用括号表示法重复上面的代码,它就像这样

    var obj = {}
    obj['key1'] = new Array();
    obj['key2'] = new Array();
    // some codes related to your program
    obj['key1'].push(value1);
    // codes ....
    obj['key1'].push(value);
    // ... same for the rest of values that you want to add to key1 and other key-values
    

    使用括号表示法,您可以使用不能与点表示法一起使用的字符,例如1,3,%等。

答案 1 :(得分:9)

您可以为属性定义一个数组:

var obj = {key1: ["val1", "val2", "val3"], key2: "value2"};

或者,在事实之后分配:

var obj = {key2: "value2"};
obj.key1 = ["val1", "val2", "val3"];

答案 2 :(得分:0)

我遇到了同样的情况,在浏览了许多资源后,我找到了非常优雅的解决方案。使用括号表示法可以为同一个键添加多个值

let obj = {}
const demo = (str, objToAdd) => {
if(!obj[str]){
obj[str] = {}
}
const key = Object.keys(objToAdd)[0]
obj[str][key] = Object.values(objToAdd)[0]
}

这里重要的一行是obj[str][key] = Object.values(objToAdd)[0]。此行将帮助您在同一键内创建对象。 obj[str][key] 将在对象内部创建对象。 添加值调用函数如下

demo('first', {content: 'content1' } )
demo('first', {content2: 'content3' } )
<块引用>

对象

<块引用>

第一:{content: "content1", content2: "content3"}

希望这会对某人有所帮助。