【发布时间】:2019-05-16 12:53:09
【问题描述】:
我初始化状态
state = {
matches: []
}
mutations = {
setMatches(state,payload) {
state.matches = payload
}
}
在我的 getter 中,我设置为获取密钥
userMatchesId: state => {
return [...state.matches.keys()]
}
我得到了错误
state.matches.keys is not a function
我的数据是这样的
{
"44033":{
"comments":[
{
"comment":"selected Hasan Ali was Bowler and Took a wicket",
"playerId":9598
},
{
"comment":"selected Fakhar Zaman was Fielder and Caught a catch",
"playerId":8192
},
{
"comment":"selected Adil Rashid was Bowler and Took a wicket",
"playerId":3899
},
{
"comment":"selected Ben Stokes was Fielder and Caught a catch",
"playerId":4489
},
{
"comment":"selected Ben Stokes was Fielder and Caught a catch",
"playerId":4489
},
{
"comment":"selected \"Ben Stokes\" was and Captain and awarded 2x points",
"playerId":4489,
"wasCaptain":true
}
],
"score":150
},
"44034":{
"comments":[
{
"comment":"selected Babar Azam was Fielder and Caught a catch",
"playerId":5601
},
{
"comment":"selected \"Ben Stokes\" was and Captain and awarded 2x points",
"playerId":4489,
"wasCaptain":true
}
],
"score":10
}
}
我需要创建 2 个数组,一个包含该数组的键,另一个包含分数。
我已经尝试使用 vue 组件中的计算属性映射返回,但我想我错过了一些东西。
我也试过
let score;
state.matches = [...Array.from(payload.matches).keys()];
Array.from(payload.matches).forEach(match => {
match.score += score
});
state.score = score;
我想要的结果是
matches: ["44033","44044"]
score: ["150",10]
【问题讨论】:
-
看起来这不是 vuejs 也不是 vuex 问题。您可以编辑您的问题以向我们展示数组的外观吗?有点不清楚您要做什么。
-
@Stilleur 编辑问题以显示结果
-
太棒了,谢谢你:)
-
那是因为您的扩展运算符末尾有
(),它断言您的键是一种方法。不使用()试试
标签: javascript arrays vuejs2 javascript-objects vuex