gpt4 book ai didi

javascript - 处理数组时出现未定义错误

转载 作者:行者123 更新时间:2023-11-30 11:49:46 25 4
gpt4 key购买 nike

我有 2 个如下所示的数组:

$scope.Stat.Statistics =[{val:10} , { val:11} , { val:13} ,{ val:14}]
$scope.selected = [{ val:12} , { val:13} ] //based on checkbox selection

现在我只想将选定值添加到 Statistics 数组并删除选定值中不存在但忽略第一个统计记录的值。

预期输出

$scope.Stat.Statistics ={[ val:10]} , {[ val:12]} , {[ val:13]}

代码:

for (var i = 0; i < selected.length; i++) {
for (var j = 1; j <= $scope.Stat.Statistics.length; j++) {
//ignore 1st record for comparision
if (selected[i].val != $scope.Stat.Statistics[j].val) {
$scope.Stat.Statistics.splice(j, 1);
$scope.Stat.Statistics[j].push(selected[i]);
}
}
}

更新:如果Statisticsselected中的值相同,我想保留统计值。

Error:$scope.Stat.Statistics[j] is undefined

最佳答案

$scope.Stat.Statistics ={[ val:10]} , {[ val:11]} , {[ val:13]} ,{[ val:14]}

这不是有效的 Javascript。如果你想要一个数组,你应该像这样定义它:

$scope.Stat.Statistics =[{val:10} , { val:11} , { val:13} ,{ val:14}]

var Statistics = [{
val: 10
}, {
val: 11
}, {
val: 13
}, {
val: 14
}];

var selected = [{
val: 12
}, {
val: 13
}];

var found = selected;
Statistics.map(function(statistic) {
selected.map(function(selectedItem) {
if(selectedItem.val === statistic.val) {
found.push(selectedItem);
}
});
});

console.log(found);

当然,我已经从中提取出 Angular 元素,但同样的逻辑应该有效。

关于javascript - 处理数组时出现未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39835094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com