を_.find取得、memberToChange.checkboxesを言う:ICheckbox []は次のように:今がLodashを使用して、プロパティに基づいて配列からオブジェクトが、私はオブジェクトの配列を持っている
、私が言う、変数を持っています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のために、それは、アレイからの私の第2の目的を返す必要があることを期待します。しかし、それは未定義に戻ります。私はここで何が起こっているのか分かりません。 値を見つけて、真に値を設定するより良い方法があれば、私もそれを知ってうれしいです。 何か助けていただければ幸いです。ありがとうございました。
更新:
誰かの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の内部にログは出力されませんか?私はここで何かを見逃していますか?
number!== string? –
両方とも文字列です。 –
それを反映するために私の質問を編集しました。 –