Angular 无法读取属性分数

Angular 无法读取属性分数,angular,Angular,我试图遍历JSON数据 var源=[{ “姓名”:“曼U”, “游戏”:34, “分数”:12分 }, { “姓名”:“曼U”, “游戏”:4, “分数”:132 }, { “姓名”:“曼U”, "游戏":三,, “分数”:5分 }, { “姓名”:“曼U”, “游戏”:24, “分数”:120 }, { “姓名”:“曼U”, "游戏":一,, “分数”:56 }, { “姓名”:“曼U”, “游戏”:7, “分数”:7分 }, { “姓名”:“曼U”, “游戏”:14, “分数”:5分 }

我试图遍历JSON数据

var源=[{
“姓名”:“曼U”,
“游戏”:34,
“分数”:12分
},
{
“姓名”:“曼U”,
“游戏”:4,
“分数”:132
},
{
“姓名”:“曼U”,
"游戏":三,,
“分数”:5分
},
{
“姓名”:“曼U”,
“游戏”:24,
“分数”:120
},
{
“姓名”:“曼U”,
"游戏":一,,
“分数”:56
},
{
“姓名”:“曼U”,
“游戏”:7,
“分数”:7分
},
{
“姓名”:“曼U”,
“游戏”:14,
“分数”:5分
}
];
var newData=[];
var i;
对于(i=0;iconsole.log(newData)这是一个典型的数组溢出问题。在数组上循环,获取当前值之后的值以与之进行比较。只有当您到达最后一个值时,之后才没有条目,因此
Source[nexIndx]
未定义的

解决方案是通过不对最后一个元素执行此代码而提前停止一个元素,或者稍后开始一个元素(
i=0
变为
i=1
),并向后看而不是向前看。我在下面介绍后者:

var源=[{
“姓名”:“曼U”,
“游戏”:34,
“分数”:12分
},
{
“姓名”:“曼U”,
“游戏”:4,
“分数”:132
},
{
“姓名”:“曼U”,
"游戏":三,,
“分数”:5分
},
{
“姓名”:“曼U”,
“游戏”:24,
“分数”:120
},
{
“姓名”:“曼U”,
"游戏":一,,
“分数”:56
},
{
“姓名”:“曼U”,
“游戏”:7,
“分数”:7分
},
{
“姓名”:“曼U”,
“游戏”:14,
“分数”:5分
}
];
var newData=[];
var i;
对于(i=1;iconsole.log(newData)首先,您的代码没有在html页面上获得用户输入。因此,您需要定义输入变量:

<form id="myForm">
    <input name="season1" type="number" placeholder="Any season">
    <input name="season2" type="number" placeholder="The Next season">
    <button type="submit">Submit</button>
</form>

<div>Season1: {{score1}}</div>
<div>Season2: {{score2}}</div>

这里是由于
newIndx
值导致的错误

在你的数组中,最后一个元素是
{“Name”:“manu”,“Games”:14,“Score”:5}
表示你的第6个元素,之后你的索引位置增加意味着
6+1是7
是你的新位置。您在这里的尝试类似于
source[7]。source===120
,因此它返回
无法读取属性分数

还有一件事是,只要你们的分数是120,你们就会在数组中推送你们的值。您可以用下面的循环替换您的循环

for (i = 0; i < Source.length; i++) {
  if (Source[i].Score == 120) {
    newData.push(Source[i], Source[i]);
  }
}
for(i=0;i
try
Search
for (i = 0; i < Source.length; i++) {
  if (Source[i].Score == 120) {
    newData.push(Source[i], Source[i]);
  }
}