Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript从数组中删除项_Javascript_Jquery_Arrays - Fatal编程技术网

使用Javascript从数组中删除项

使用Javascript从数组中删除项,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个javascript数组,我将把这个数组存储在本地存储器中 var result; result = [1,2,3,4,5]; localStorage.setItem('result', JSON.stringify(result)); function removeItem(Id){ result= JSON.parse(localStorage.getItem('result'));// get array values from local Strora

我有一个javascript数组,我将把这个数组存储在本地存储器中

 var result;     
 result = [1,2,3,4,5];
 localStorage.setItem('result', JSON.stringify(result));
function removeItem(Id){
    result= JSON.parse(localStorage.getItem('result'));// get array values from local Strorage
    var index = result.indexOf(Id);// find index position
    result.splice(index , 1); //and removing the Id from array
    localStorage.setItem('result', JSON.stringify(result));// result set to local storage
}
上面是数组结果,我将把数组值设置为本地存储

 var result;     
 result = [1,2,3,4,5];
 localStorage.setItem('result', JSON.stringify(result));
function removeItem(Id){
    result= JSON.parse(localStorage.getItem('result'));// get array values from local Strorage
    var index = result.indexOf(Id);// find index position
    result.splice(index , 1); //and removing the Id from array
    localStorage.setItem('result', JSON.stringify(result));// result set to local storage
}
函数调用

var id = 1;
removeItem(id);

第一个定位的数组值未从数组项中删除。使用此函数可以完全删除所有其他值,但数组中的第一个值不会从数组中删除。有人能推荐更好的选项吗?

要删除第一个元素,必须使用index value=0,而不是1

尝试使用此函数

function removeItem(arr) {
    var what, a = arguments, len = a.length, ax;
    while (len  > 1 && arr.length) {
        what = a[--len ];
        while ((ax= arr.indexOf(what)) !== -1) {
            arr.splice(ax, 1);
        }
    }
    return arr;
}
例如:

removeItem(result,1);

从数组中删除项的简单方法如下:

// as a function
function removeitem(item, arr){
    var i; while( ( i = arr.indexOf(item)) != -1)arr.splice(i, 1);
}
像这样使用

var result;     
result = [1,2,3,4,5];
removeitem(1, result);

函数removietem=function(Id)错误尝试var removietem=function(Id)而不是在控制台中尝试您的代码,对我来说工作正常除了函数签名,代码正常工作。不幸的是,这不是一个问题,因为OP使用
result.indexOf(Id)
查找某个Id的索引,在本例中
var Id=1是的,只是观察到