如何在javascript数组中添加对象?

时间:2019-06-16 09:15:22

标签: javascript arrays javascript-objects

我得到了这样的对象数组:

const matches = [
    {
        homeTeam: 'France',
        awayTeam: 'Croatia',
        score: '2:1',
        date: '18.01.2019'
    },

我需要在该数组中再添加一个对象“点”,并将其初始化为0。

我希望添加该对象并将其打印到控制台

4 个答案:

答案 0 :(得分:0)

尝试使用array.prototype中的map方法。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

matches.map(col => col.Points = 0)

如果需要ES5语法,则可以在下面使用,这表示您在网络浏览器上。

matches.map(function() {
  return col.Points = 0
})

变化点是使用return语句设置值。

答案 1 :(得分:0)

let matches = [{
  homeTeam: 'France',
  awayTeam: 'Croatia',
  score: '2:1',
  date: '18.01.2019'
}]

let newArrayWithPoints = matches.map(o => ({ ...o,
  Points: 0
}))

console.log('newArrayWithPoints', newArrayWithPoints)

由于它是一个对象数组,因此您可以通过遍历对象来创建新属性,并使用array.map返回数组的新副本

我希望这能解决问题

let newArrayWithPoints = matches.map(o => ({...o, Points: 0}))

答案 2 :(得分:0)

如果要在初始化时添加,请使用

const matches = [
{
    homeTeam: 'France',
    awayTeam: 'Croatia',
    score: '2:1',
    date: '18.01.2019'
},{ points: 0 }]

但是如果要在初始化后添加,请不要使其成为常量变量,而应使用push方法。

答案 3 :(得分:0)

我错过了一些复杂性吗? --只需以数组中的对象为目标并设置属性。

let matches = [{
  homeTeam: 'France',
  awayTeam: 'Croatia',
  score: '2:1',
  date: '18.01.2019'
}]

matches[0].points = 0;


console.log(matches)
//[
//  {
//    "homeTeam": "France",
//    "awayTeam": "Croatia",
//    "score": "2:1",
//    "date": "18.01.2019",
//    "points": 0
//  }
//]

如果数组中有多个匹配项-只需遍历数组并执行相同操作即可。

let matches = [
{
  homeTeam: 'France',
  awayTeam: 'Croatia',
  score: '2:1',
  date: '18.01.2019'
},{
  homeTeam: 'Italy',
  awayTeam: 'Germany',
  score: '2:0',
  date: '9.06.2019'
}]


matches.forEach(function(match){
  match.points = 0;
})


console.log(matches)
//[
//  {
//    "homeTeam": "France",
 //   "awayTeam": "Croatia",
//    "score": "2:1",
//    "date": "18.01.2019",
//    "points": 0
//  },
//  {
//    "homeTeam": "Italy",
//    "awayTeam": "Germany",
//    "score": "2:0",
//    "date": "9.06.2019",
//    "points": 0
//  }
]//