根据单独数组中的值设置数组的值[Angular,forEach]
Setting the values of an array depending on the values in a separate array [Angular, forEach]
我有两组数组,$scope.Skills
和$scope.skillslist
。
Skills
数组有很多值,所以我只包括与问题相关的值:
$scope.Skills = [
{LotsOfValues: "blah", Skill_Values__c: "1"},
{LotsOfValues: "blah", Skill_Values__c: "2"},
{LotsOfValues: "blah", Skill_Values__c: "3"}
];
和skillslist
阵列:
$scope.skillslist = [
{Skill_Values__c: "1", Checked: ""},
{Skill_Values__c: "2", Checked: ""},
{Skill_Values__c: "3", Checked: ""},
{Skill_Values__c: "4", Checked: ""},
{Skill_Values__c: "5", Checked: ""},
{Skill_Values__c: "6", Checked: ""},
{Skill_Values__c: "7", Checked: ""}
];
我想做的是,对于skillslist
中的每个项目,针对Skills
中的项目运行它,如果匹配,则将Checked设置为true,如果不匹配,则设置为false。如何才能做到这一点?
我正在使用forEach函数,这就是我目前所拥有的:
angular.forEach(skills, function (value) {
console.log("FOR EACH");
for (var i = 0; i <= $scope.skillslist.length; i++) {
if ($scope.skillslist[i].Skill_Values__c === value.Skill_Values__c) {
$scope.skillslist[i].Checked = "Added";
} else {
$scope.skillslist[i].Checked = "no";
}
}
});
但我马上就知道我做错了,因为我应该寻找每个skillslist
,对吧?但当我这样做时,我不知道如何更改每个值的Checked值。将所有Skills
替换为skillslist
没有帮助。
在我对skillslist
的ng重复中,我看到第一个项目的Checked值为"Added",其余项目的Checkedvalue为"no"。
我一直在阅读forEach的例子,但找不到任何与我试图做的事情相关的例子,关于以这种方式引用两个不同的数组。任何建议都将不胜感激!
如果在skillslist
上迭代,则传递给回调的每个值都将是skillslist
的单独值。因此,如果您想更改skillslist
的值,可以通过更改传递给回调的第一个参数来实现。像这样:
skillslist.forEach(function(skill) {
var isInSkills = skills.some(function(skillValue) {
return skillValue.Skill_Values__c === skill.Skill_Values__c;
});
if(isInSkills) {
skill.checked = "Added";
} else {
skill.checked = "no";
}
});
您可以查看JavaScript的some和forEach:
$scope.skillslist.forEach(function (skillFromList) {
skillFromList.Checked = $scope.Skills.some(function (skill) {
return skillFromList.Skill_Values__c === skill.Skill_Values__c;
});
});
JSFiddle
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- Angular只从数组中获取所需的数据
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 向Angular作用域对象添加对象数组——TypeError
- 使用Angular.js解析JSON中的嵌套对象数组
- 获取Angular JS中的数组大小
- 使用Angular.js访问php数组数据
- 如何在 Angular JS 中从关联数组创建多个复选框
- 以angular.js显示数组
- Javascript或angular js中的对象数组
- 要筛选的数组的管道值的含义:$select.search in angular
- $scope$观察数组中的一个特定对象——Angular JS控制器
- 2D数组在Angular JS 1.2.x中工作,而不是在1.3.x中工作
- 如何在angular js/HTML中处理数组
- angular mongodb数组格式写错了
- 从作为参数传入的数组中删除对象不会修改原始数组 (Angular)
- orderBy数组Angular ng中的项值重复
- N级层次结构数组Angular JS
- 如何在工厂/服务中推送数据到数组(ANGULAR/IONIC)
- 试图避免将重复项推入数组Angular