我得到了这样的对象数组:
const matches = [
{
homeTeam: 'France',
awayTeam: 'Croatia',
score: '2:1',
date: '18.01.2019'
},
我需要在该数组中再添加一个对象“点”,并将其初始化为0。
我希望添加该对象并将其打印到控制台
答案 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
// }
]//