簡體   English   中英

無法從Jquery中的數組中刪除值

[英]Unable to remove Value from Array in Jquery

我有以下數組

var userIdArray=["1", "3", "6", "39", "62", "139"];

我想使用值刪除數組值

我嘗試了以下方法

function  deleteMember(id) {
                alert(id+"="+userIdArray.indexOf(id));

                userIdArray.splice(userIdArray.indexOf(id),1);

            }

但是它總是刪除最后一個值。

還注意到, userIdArray.indexOf(id)始終返回-1,但是如果傳遞類似userIdArray.indexOf("6")則它將刪除特定位置。有誰能幫助我如何刪除特定值?

jQuery.grep()

您可以return ( i > 10 );使用return ( i > 10 ); 任何條件並計算得出

 var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ]; arr = jQuery.grep(arr, function( n, i ) { return ( i > 10 ); }); console.log(arr); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

最簡單的方法是使用filter()

 var userIdArray = ["1", "3", "6", "39", "62", "139"]; function deleteMember(id) { userIdArray = userIdArray.filter(i => i != id); } deleteMember('3'); console.log(userIdArray); 

我認為您遇到了一個問題,即您要放入deleteMember函數的id不是字符串。

這可能可以解決您的問題:

 var userIdArray=["1", "3", "6", "39", "62", "139"]; function deleteMember(id) { removeId = String(id) removeIndex = userIdArray.indexOf(removeId) if(removeIndex != -1) userIdArray.splice(removeIndex,1); } deleteMember(3) console.log(userIdArray) 

一種更漂亮的方法是像這樣處理您的數據:(ES6方法)

 var userIdArray=["1", "3", "6", "39", "62", "139"]; deleteMemberFromArray = (array, value) => array.filter((member) => member != String(value) ); userIdArray = deleteMemberFromArray(userIdArray, 3) console.log(userIdArray) 

您可以嘗試這種更短,更簡單的方法來實現所需的結果:

function deleteMember(id) {
    alert(id+"="+userIdArray.indexOf(id));
    array.splice(i, 1);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM