[英]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")
則它將刪除特定位置。有誰能幫助我如何刪除特定值?
您可以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.