我有對象的數組獲得從基於屬性陣列對象,說memberToChange.checkboxes:ICheckbox []是這樣的:使用Lodash _.find
現在,我有一個變量,說internalNumber:具有值「3419」的字符串。我想從internalNumber匹配label屬性的對象數組中獲取對象。最終,我想將該對象的value屬性設置爲true。
我的代碼是:
let checkboxes = _.find(scope.selectedMembers, (member: IMember) => member.member.uuid === memberId).checkboxes; //gives me array of checkboxes.
let checkboxToChange = _.find(memberToChange.checkboxes, function(checkbox: ICheckbox){
return (checkbox.label === internalNumber);
}); //gives me null, moreover, even a console.log inside the second find doesn't print. I'm thinking the two consecutive _.find statements are messing something up, not sure what.
供參考,這是我的ICheckbox接口:
export interface ICheckbox {
label: string;
sublabel?: string;
value: boolean;
numberUuid: string;
}
我希望,對於internalNumber 3419,它應該返回我的第二個對象從數組。但它返回undefined。我不確定這裏發生了什麼事。 如果有更好的方法來查找和一個值設置爲true走而已,我會很高興地知道這一點。 任何幫助表示讚賞。謝謝。
更新:
使用JavaScript的濾波方法有人建議之後,我想這:(我的範圍被分配到這個)
scope.selectedMembers.filter(function(member) {
if (member.member.uuid === memberId) {
scope.memberCheckboxes = [];
console.log('found member'); //prints
scope.memberCheckboxes = member.checkboxes;
console.log(scope.memberCheckboxes); // print correctly, with checkboxes of the member
scope.memberCheckboxes.filter(function(checkbox) {
console.log('inside checkbox function'); //control doesnt even come here
if (checkbox.label === intNum) {
console.log('found checkbox'); // control doesnt come here
}
});
}
});
在這裏,我不明白爲什麼第一個控制檯。記錄在scope.memberCheckboxes.filter裏面不打印?我在這裏錯過了很明顯的東西嗎
號!==字符串? –
兩者都是字符串。 –
編輯我的問題來反映這一點。 –