splice()问题,当我只想单个元素时,它返回一个带有单个元素的数组

时间:2019-06-10 21:00:37

标签: javascript

我有一个函数,该函数从数组中删除一个元素,然后将返回的元素放入另一个数组中,问题是splice()返回的内容是一个数组,其中包含该元素,当我只想要该元素,例如pop()

这是我的拼接和弹出代码

$scope.quitarid = function () {
    for (var i = 0; i < $scope.info.albumes.length; i++) {
        if ($scope.info.albumes[i].id === '3') {
            entrada_3 = $scope.info.albumes.splice(i, 1);
            console.log("entrada quitarid", entrada_3);
            $scope.segundatabla.push(entrada_3);
            break;
        }
    }
    console.log($scope.info.albumes);
};

$scope.quitarcd = function () {
    console.log($scope.info.albumes);
    entrada = $scope.info.albumes.pop();
    console.log($scope.info.albumes);
    console.log("entrada quitarcd", entrada);
    $scope.segundatabla.push(entrada);
    console.log($scope.segundatabla);
};

This is the result

2 个答案:

答案 0 :(得分:0)

鉴于您知道此实例中的拼接将始终返回仅包含您想要的单个项目的数组,您可以简单地访问该项目并将其存储在entrada_3中。例如:

entrada_3 = $scope.info.albumes.splice(i, 1)[0];

答案 1 :(得分:0)

一种方法是使用传播语法:

$scope.quitarid = function () {
    for (var i = 0; i < $scope.info.albumes.length; i++) {
        if ($scope.info.albumes[i].id === '3') {
            entrada_3 = $scope.info.albumes.splice(i, 1);
            console.log("entrada quitarid", entrada_3);
            ̶$̶s̶c̶o̶p̶e̶.̶s̶e̶g̶u̶n̶d̶a̶t̶a̶b̶l̶a̶.̶p̶u̶s̶h̶(̶e̶n̶t̶r̶a̶d̶a̶_̶3̶)̶;̶
            $scope.segundatabla.push(...entrada_3);
            break;
        }
    }
    console.log($scope.info.albumes);
};

它将解构数组并将其作为args传递给.push方法。

有关更多信息,请参见