Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript对象中向一个键添加多个值_Javascript - Fatal编程技术网

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

如何在javascript对象中向一个键添加多个值,javascript,Javascript,我有一个对象var obj={key1:“value1”,key2:“value2”}我想向键1或键2添加多个值或值数组,例如 var obj={key1:“arrayOfValues”,key2:“value2”}可能吗?基本上,我想将其发送到php进行处理。您可以为属性定义一个数组: var obj = {key1: ["val1", "val2", "val3"], key2: "value2"}; 或者,在事实发生后分配: var obj = {key2: "value2"}; obj

我有一个对象
var obj={key1:“value1”,key2:“value2”}我想向键1或键2添加多个值或值数组,例如

var obj={key1:“arrayOfValues”,key2:“value2”}可能吗?基本上,我想将其发送到php进行处理。

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

var obj = {key1: ["val1", "val2", "val3"], key2: "value2"};
或者,在事实发生后分配:

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

可以通过两种方式创建对象

  • 点符号
  • 括号符号
  • 此外,还可以在具有/不具有初始大小的数组中定义值。 对于方案一,您可以在最坏的情况下执行以下操作:

    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、%等。

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

    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' } )
    
    obj

    第一:{content:“content1”,content2:“content3”}


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

    obj.key1=“arrayOfValues”
    。这就是你的意思吗?我看不出你到底在哪里挣扎。如果你知道JS数组语法,这应该很简单