0
if (sorted[i].Document === 'abc' || sorted[i].Document === 'xyz') {
    delete sorted[i].Document;
}

特定の 2 つのドキュメントを削除しようとすると、削除されますが、次回は Document is undefined というエラーがスローされます。

var sorted = DocumentListData.Documents.sort(function (a, b) {
    var nameA = a.Document.toLowerCase(),
        nameB = b.Document.toLowerCase();

    return nameA.localeCompare(nameB);
});

私はドキュメントを並べ替え、それを繰り返してから、ドキュメントを削除しようとしていますabc and xyz

4

1 に答える 1

0

toLowerCase削除したばかりで存在しないプロパティを呼び出そうとしています。それらに対してメソッドを実行する前に、それらが存在するかどうかを確認してください。

// i used empty string as the default, you can use whatever you want
var nameA = a.Document ? a.Document.toLowerCase() : '';
var nameB = b.Document ? b.Document.toLowerCase() : '';

Documentプロパティだけでなく配列要素を削除しようとしている場合は、splice代わりにdelete次を使用する必要があります。

if (sorted[i].Document === 'abc' || sorted[i].Document === 'xyz') {
    sorted.splice(i, 1);
}
于 2013-03-07T15:44:32.650 に答える