for (var i=0; i<vm.tags.length; i++) {
if (selectedTags[0]) {
if (vm.tags[i].term_id === selectedTags[0].term_id) {
vm.tags[i].border1 = true;
}
}
if (selectedTags[1]) {
if (vm.tags[i].term_id === selectedTags[1].term_id) {
vm.tags[i].border2 = true;
}
}
if (selectedTags[2]) {
if (vm.tags[i].term_id === selectedTags[2].term_id) {
vm.tags[i].border3 = true;
}
}
}
vm.tags
是完整列表,最多 20 多个标签。 selectedTags
是一个最多包含 3 个标签的数组,基本上 3 个标签可能包含与 vm.tags
内的标签相同的 id。
如果 vm.tags
内的标签与 selectedTag
中的标签匹配,我需要更改这些 vm.tags
上的边框值。
还有比上面更好的方法吗?我有重复代码的地方。
<小时/>selectedTags
数组示例:
[对象,对象,对象]
数组中的对象示例:
{
selected: true,
term: "term_name",
term_id: 2349506
}
最佳答案
检查一下:
for (var i=0; i<vm.tags.length; i++) {
for(var j=0; j<selectedTags.length; j++){
if(selectedTags[j].term_id === vm.tags[i].term_id ){
var name = 'border'+ ( j + 1 );
vm.tags[i][name] = true;
}
}
}
关于javascript - 如何重构这段代码?我有 3 个标签需要在列表中重新选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35297880/