如何在数组Javascript中推送对象?

时间:2020-05-13 13:34:11

标签: javascript arrays object

我有数组

var CatTitle = ['Travel', 'Daily Needs','Food & Beverages','Lifestyle','Gadget & Entertainment','Others']

我想将一个对象推入该数组

var myObj = {Coupon exp : 'xxx', couponcode : 'xxx'}

我将拥有这样的新数组

var CatTitle = [
'Travel': [{Coupon exp : 'xxx', couponcode : 'xxx'},{Coupon exp : 'xxx', couponcode : 'xxx'}], 
'Daily Needs',
'Food & Beverages',
'Lifestyle',
'Gadget & Entertainment',
'Others']

我该怎么做?谢谢

5 个答案:

答案 0 :(得分:1)

如何将对象推入数组

const animals = ['pigs', 'goats', 'sheep'];

animals.push({animal: 'cows'});

console.log(animals); // ["pigs", "goats", "sheep", { animal: "cows" }]

答案 1 :(得分:1)

我们可以过滤Travel,因为它是string的类型,然后将所需的对象推入数组:

let catTitle = ['Travel', 'Daily Needs','Food & Beverages','Lifestyle','Gadget & Entertainment','Others'];

catTitle = catTitle.filter(f => f !=='Travel');
catTitle.push({Travel:{'Coupon exp': 'xxx', couponcode : 'xxx'}})
console.log(catTitle)

如果CatTitleObject

var CatTitle = {'Travel': 0, 'Daily Needs': 0,'Food & Beverages': 0,'Lifestyle': 0,
    'Gadget & Entertainment': 0,'Others': 0}

那将是相当简单的:

CatTitle.Travel = {'Coupon exp': 'xxx', couponcode : 'xxx'}

答案 2 :(得分:1)

我真的不知道您打算做什么或要去哪里,但是下面的代码最终将满足您的要求。

仅使用Javascript数组是对象的事实 内部。

var CatTitle = ['Travel', 'Daily Needs', 'Food & Beverages', 'Lifestyle', 'Gadget & Entertainment', 'Others']

var myObj = {Couponexp : 'xxx', couponcode : 'xxx'}
CatTitle.shift();

CatTitle["Travel"] = [];

CatTitle["Travel"].push(myObj);
CatTitle["Travel"].push(myObj);

console.log(CatTitle);
console.log(CatTitle.Travel);

答案 3 :(得分:1)

我这样想:

var CatTitle = ['Travel', 'Daily Needs','Food & Beverages','Lifestyle','Gadget & Entertainment','Others'];
var myObj = {Coupon exp : 'xxx', couponcode : 'xxx'};
var newObject = {};
var newArray = [];

var i;
for(i=0; i < CatTitle.length; i++) {
   var dump = {
      CatTitle[i]: myObj 
   }
   newArray.push(dump);
}
newObject = newArray;

答案 4 :(得分:0)

我相信您会混淆ArrayObject。为了轻松解释,我将使用文字语法。

数组由[]表示。

数组没有键,因此不能那样使用。数组键是动态排序的索引。

var CatTitle = [
    'Travel', 
    'Daily Needs',
    'Food & Beverages',
    'Lifestyle',
    'Gadget & Entertainment',
    'Others',
]

对象由{}表示。

var myObj = {
    exp : 'xxx', 
    couponcode : 'xxx',
}

如果要将某些对象推入数组,请使用CatTitle.push({ exp: 'xxx' })。这样您将拥有一个像这样的数组。

var CatTitle = [
    'Travel', 
    'Daily Needs',
    'Food & Beverages',
    'Lifestyle',
    'Gadget & Entertainment',
    'Others',
    { exp: 'xxx' }, // <-- you pushed here at last index (6)
];

CatTitle[6] // { exp: 'xxx' }

但是我相信您正在寻找对象的对象。像这样:

var CatTitle = {
    'Travel': [{ exp: 'xxx' }, { exp: 'yyy' }], 
    'Daily Needs': [],
    'Food & Beverages': [],
    'Lifestyle': [],
    'Gadget & Entertainment': [],
    'Others': [],
};

CatTitle['Travel'] // [{ exp: 'xxx' }, { exp: 'xxx' }]
CatTitle['Travel'][0] // { exp: 'xxx' }

我看到您正在开始学习JavaScript。建议您阅读有关ArraysObjects的文档。

其他表彰是关于语义的,永远不要大写变量。避免将键创建为字符串,但是我相信您希望它像动态的东西一样,在这种情况下可以。

一个很好的例子:

var catTitles = {
    'Travel': [{ exp: 'xxx' }, { exp: 'yyy' }], 
    'Daily Needs': [],
    'Food & Beverages': [],
    'Lifestyle': [],
    'Gadget & Entertainment': [],
    'Others': [],
};

catTitles['Travel'] // [{ exp: 'xxx' }, { exp: 'xxx' }]
catTitles['Travel'][0] // { exp: 'xxx' }


// you can add another category like this
catTitle['Restaurants'] = [{ exp: 'xxx' }];