配列のこの部分を削除できるように、配列にオブジェクトのインデックスが必要です。私はこれを使ってみました:
var index = this.urenRegistratie.indexOf(newDatum);
しかし、それは-1を返し続け、なぜこれが起こっているのかわかりません。
これは私が持っているコードの一部です。 htmlのフォームからデータを取得し、それを配列に配置します。これで、ifステートメントの準備ができて(exisitingDatum)、コードがそこにある必要があります。誰かが私を少し助けてくれますか?
store(newValue:number, newDatum, newAanwezig, newComment){
const existingDatum = this.urenRegistratie.find(billable => {
return billable.datum === newDatum;
return
});
if (!existingDatum) {
let billable = new BillableHours();
billable.datum = newDatum;
billable.hours = +newValue;
billable.aanwezig = newAanwezig;
billable.comment = newComment;
if(billable.aanwezig == "Aanwezig" && billable.hours !== 0 && billable.datum !== null) {
this.urenRegistratie.Push(billable);
}
}
if(existingDatum) {
}
}
簡単でエレガントな解決策は、 lo。 ライブラリを使用して詳細な比較を実行する _。isEqual を使用することです。
Npmパッケージ- https://www.npmjs.com/package/lodash
const a = [
{ firstName: "Adam", LastName: "Howard" },
{ firstName: "Ben", LastName: "Skeet" },
{ firstName: "Joseph", LastName: "Skeet" }
];
const find = { firstName: "Joseph", LastName: "Skeet" }
index = a.findIndex(x => _.isEqual(x, find));
console.log(index);