1

良い一日!

現在、プッシュ メソッドを使用してインデックス 0 にオブジェクトを追加し、スプライス メソッドを使用してアイテムを削除することで、配列を操作する作業を行っています。私が読んで理解したように、配列からアイテムをスプライスすると、配列に「未定義」のアイテムが残りません。問題は、スプライスを使用しているときに現在「未定義」のアイテムを取得していることです。

エントリを追加するための私のコードは次のとおりです。

addOrRemoveRating(0,0,{
    rating : 0,
    tran_number : transaction_number,
    email : $scope.called_numbers[0].email
});

エントリを削除するための私のコードは次のとおりです。

 addOrRemoveRating(array_index,1);

array_index は既存のインデックスです。

そして最後の部分は、スプライシングが発生する場所です。

addOrRemoveRating = function(index, item, object){
    $scope.temp_called_numbers.splice(index, item, object);
}

たとえば、配列に [オブジェクト、オブジェクト、オブジェクト] という 3 つのオブジェクトがあり、アイテムを削除すると、[オブジェクト、オブジェクト、未定義] が返されます。

コードに欠けているものや間違っているものはありますか? ヘルプ、リファレンス、またはコーチングは大歓迎です。

4

2 に答える 2

0

これは AngularJS の問題ではなく、厳密には Javascript の問題です。3 つのパラメーターを使用して呼び出すsplice()と、指定した場所で 3 番目のパラメーターがスプライスされます。3 番目のパラメーター ( object) を省略すると、配列からオブジェクトが削除されるだけです。

addOrRemoveRating = function(index, item, object){
    if (object)
        $scope.temp_called_numbers.splice(index, item, object);
    else
        $scope.temp_called_numbers.splice(index, item);
}
于 2015-05-13T04:48:53.853 に答える