Javascript 如何将一个对象附加到另一个对象?

Javascript 如何将一个对象附加到另一个对象?,javascript,Javascript,有人能帮我把一个对象附加到另一个对象上吗?例如,我有原始对象: var object = { { product_code: '55993', brand: 'Phillips66', category: 'LUBES AND GREASES', description: 'cuatro cinco seis', price: '300.00', quantity: '3' } } 我想补充一下: { pro

有人能帮我把一个对象附加到另一个对象上吗?例如,我有原始对象:

var object = {
    { product_code: '55993',
      brand: 'Phillips66',
      category: 'LUBES AND GREASES',
      description: 'cuatro cinco seis',
      price: '300.00',
      quantity: '3' 
    }
}
我想补充一下:

    { product_code: '90210',
      brand: 'Phillips66',
      category: 'LUBES AND GREASES',
      description: 'cuatro cinco seis',
      price: '500.00',
      quantity: '5' 
    }
所以最后,
对象
看起来像:

object = {
    { product_code: '55993',
      brand: 'Phillips66',
      category: 'LUBES AND GREASES',
      description: 'cuatro cinco seis',
      price: '300.00',
      quantity: '3' 
    },
    { product_code: '90210',
      brand: 'Phillips66',
      category: 'LUBES AND GREASES',
      description: 'cuatro cinco seis',
      price: '500.00',
      quantity: '5' 
    }
}

如何执行此操作?

您的对象变量应该是数组,而不是对象:

    var object = [
        { product_code: '55993',
          brand: 'Phillips66',
          category: 'LUBES AND GREASES',
          description: 'cuatro cinco seis',
          price: '300.00',
          quantity: '3' 
        }
    ]
var object1 = {foo: "bar"};
然后可以向其中添加其他对象:

object.push({ product_code: '90210',
      brand: 'Phillips66',
      category: 'LUBES AND GREASES',
      description: 'cuatro cinco seis',
      price: '500.00',
      quantity: '5' 
    });

希望有帮助。

您有两个选择:

  • 定义用于存储第二个对象的属性名称,它不会为您提供问题末尾所示的结构

  • 使用一个数组,它将为您提供与问题结尾处非常相似的内容:

    [
        { product_code: '55993',
          brand: 'Phillips66',
          category: 'LUBES AND GREASES',
          description: 'cuatro cinco seis',
          price: '300.00',
          quantity: '3' 
        },
        { product_code: '90210',
          brand: 'Phillips66',
          category: 'LUBES AND GREASES',
          description: 'cuatro cinco seis',
          price: '500.00',
          quantity: '5' 
        }
    ]
    
    注意最外层的
    [
    ]
    而不是
    {
    }

  • 如果您有一个对象:

        var object = [
            { product_code: '55993',
              brand: 'Phillips66',
              category: 'LUBES AND GREASES',
              description: 'cuatro cinco seis',
              price: '300.00',
              quantity: '3' 
            }
        ]
    
    var object1 = {foo: "bar"};
    
    还有一个目标:

    var object2 = {biz: "baz"};
    
    那么选项#1如下所示:

    object1.anyNameHere = object2;
    
    …这将为您提供:

    {
       foo: "bar",
       anyNameHere: {
           biz: "baz"
       }
    }
    
    [
        {
            foo: "bar"
        },
        {
            biz: "baz"
        }
    ]
    
    或选项2:

    …这将为您提供:

    {
       foo: "bar",
       anyNameHere: {
           biz: "baz"
       }
    }
    
    [
        {
            foo: "bar"
        },
        {
            biz: "baz"
        }
    ]
    

    有两种方法,但第一种是使用for循环轻松检索数据的最佳方法

    var object1 = { product_code: '55993',
        brand: 'Phillips66',
        category: 'LUBES AND GREASES',
        description: 'cuatro cinco seis',
        price: '300.00',
        quantity: '3'
    };
    
    var object2 ={ product_code: '55993',
        brand: 'Phillips66',
        category: 'LUBES AND GREASES',
        description: 'cuatro cinco seis',
        price: '300.00',
        quantity: '3'
    }
    
    1)创建一个数组变量并推送该数组中的所有对象

    var myObjectList = [];
    myObjectList.push(object1);
    myObjectList.push(object2);
    
    2)您可以创建对象并为该对象赋值

    var myObjectList = {object1: object1, object2 : object2};
    

    可以使用ES6 spread运算符附加对象

    object = { ...object, 
    ...{ product_code: '90210',
          brand: 'Phillips66',
          category: 'LUBES AND GREASES',
          description: 'cuatro cinco seis',
          price: '500.00',
          quantity: '5' 
        }
    }
    

    我投票赞成使用扩展语法的CaptainAdmin答案。非常有用,很高兴知道它在那里。但是,在这种情况下,使用以下内容更方便、更正确:

    var o1 = {
        product_name: "Super One",
    };
    
    var o2 = {
        quantity: 50,
    };
    
    specializeWith(o1, o2);
    
    其中:

    function specialize_with(o, S) { for (var prop in S) { o[prop] = S[prop]; } }
    
    那么您的
    o1
    将是:

    var o1 = {
        product_name: "Super One",
        quantity: 50,
    };
    
    不幸的是,仔细观察最初的问题,我发现这并不是最初被问到的问题。需要的是对象数组,而不是继承、专门化或扩展。还是把它留在这里

    另请参见,specializeWith()就是从这里开始的


    请再次查看。

    var对象={{key:“value”}}
    不是有效的JavaScript。对象属性需要键。你的问题中没有JSON。JSON是一种文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。使用对象数组,您试图使用对象的对象,这将变得更加复杂,而且您当前的结构也不支持它