我有以下数组
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")
那么它将删除特定位置
任何人都可以帮助我如何消除特定的价值吗?
答案 0 :(得分:2)
您可以在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>
&#13;
答案 1 :(得分:1)
最简单的方法是使用filter()
:
var userIdArray = ["1", "3", "6", "39", "62", "139"];
function deleteMember(id) {
userIdArray = userIdArray.filter(i => i != id);
}
deleteMember('3');
console.log(userIdArray);
答案 2 :(得分:1)
我认为您遇到的问题是,您在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)
&#13;
更美妙的方式是处理您的数据:(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)
&#13;
答案 3 :(得分:0)
您可以尝试这种更短更简单的方式来实现您所寻找的目标:
function deleteMember(id) {
alert(id+"="+userIdArray.indexOf(id));
array.splice(i, 1);
}