例如要在一个名为array的数组中删除“内容”为‘3’的元素,但不知道‘3’的下标。该如何删除?
jqueryå é¤æ°ç»ä¸çä¸ä¸ªå
ç´ çæ¹æ³æ¯ç¨spliceå®ç°çã
举ä¾è¯´æï¼
var arrList = ['a','b','c','d'];
arrList.splice(jQuery.inArray('b',arrList),1);
alert(arrList);
å ¶ä¸jQuery.inArray('b',arrList)æ¯bè¿ä¸ªå ç´ å¨æ°ç»arrList ä¸çä½ç½®
splice(index,1)å½æ°ä¸ç¬¬ä¸ä¸ªåæ°indexæ¯è¦å é¤å ç´ å¨æ°ç»ä¸çä½ç½®ï¼ç¬¬äºä¸ªåæ°æ¯è¦å é¤çæ°éã
Array对象çæ¹æ³æï¼
concat() è¿æ¥ä¸¤ä¸ªææ´å¤çæ°ç»ï¼å¹¶è¿åç»æã
join() ææ°ç»çææå ç´ æ¾å ¥ä¸ä¸ªå符串ãå ç´ éè¿æå®çåé符è¿è¡åéã
pop() å é¤å¹¶è¿åæ°ç»çæåä¸ä¸ªå ç´ ã
push() åæ°ç»çæ«å°¾æ·»å ä¸ä¸ªææ´å¤å ç´ ï¼å¹¶è¿åæ°çé¿åº¦ã
reverse() é¢ åæ°ç»ä¸å ç´ ç顺åºã
shift() å é¤å¹¶è¿åæ°ç»ç第ä¸ä¸ªå ç´
slice() ä»æ个已æçæ°ç»è¿åéå®çå ç´
sort() 对æ°ç»çå ç´ è¿è¡æåº
splice() å é¤å ç´ ï¼å¹¶åæ°ç»æ·»å æ°å ç´ ã
toSource() è¿å该对象çæºä»£ç ã
toString() ææ°ç»è½¬æ¢ä¸ºå符串ï¼å¹¶è¿åç»æã
toLocaleString() ææ°ç»è½¬æ¢ä¸ºæ¬å°æ°ç»ï¼å¹¶è¿åç»æã
unshift() åæ°ç»çå¼å¤´æ·»å ä¸ä¸ªææ´å¤å ç´ ï¼å¹¶è¿åæ°çé¿åº¦ã
valueOf() è¿åæ°ç»å¯¹è±¡çåå§å¼ã
举ä¾è¯´æï¼
var arrList = ['a','b','c','d'];
arrList.splice(jQuery.inArray('b',arrList),1);
alert(arrList);
å ¶ä¸jQuery.inArray('b',arrList)æ¯bè¿ä¸ªå ç´ å¨æ°ç»arrList ä¸çä½ç½®
splice(index,1)å½æ°ä¸ç¬¬ä¸ä¸ªåæ°indexæ¯è¦å é¤å ç´ å¨æ°ç»ä¸çä½ç½®ï¼ç¬¬äºä¸ªåæ°æ¯è¦å é¤çæ°éã
Array对象çæ¹æ³æï¼
concat() è¿æ¥ä¸¤ä¸ªææ´å¤çæ°ç»ï¼å¹¶è¿åç»æã
join() ææ°ç»çææå ç´ æ¾å ¥ä¸ä¸ªå符串ãå ç´ éè¿æå®çåé符è¿è¡åéã
pop() å é¤å¹¶è¿åæ°ç»çæåä¸ä¸ªå ç´ ã
push() åæ°ç»çæ«å°¾æ·»å ä¸ä¸ªææ´å¤å ç´ ï¼å¹¶è¿åæ°çé¿åº¦ã
reverse() é¢ åæ°ç»ä¸å ç´ ç顺åºã
shift() å é¤å¹¶è¿åæ°ç»ç第ä¸ä¸ªå ç´
slice() ä»æ个已æçæ°ç»è¿åéå®çå ç´
sort() 对æ°ç»çå ç´ è¿è¡æåº
splice() å é¤å ç´ ï¼å¹¶åæ°ç»æ·»å æ°å ç´ ã
toSource() è¿å该对象çæºä»£ç ã
toString() ææ°ç»è½¬æ¢ä¸ºå符串ï¼å¹¶è¿åç»æã
toLocaleString() ææ°ç»è½¬æ¢ä¸ºæ¬å°æ°ç»ï¼å¹¶è¿åç»æã
unshift() åæ°ç»çå¼å¤´æ·»å ä¸ä¸ªææ´å¤å ç´ ï¼å¹¶è¿åæ°çé¿åº¦ã
valueOf() è¿åæ°ç»å¯¹è±¡çåå§å¼ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2018-09-25
构建一个新的数组, 然后循环老的, 排除内容为3那个 不追加 就可以了本回答被网友采纳
第2个回答 推荐于2018-02-20
for(var i=0;i<array.length;i++){
if(array[i]==='3'){
arr.splice(i,1);//从下标为i的元素开始,连续删除1个元素
i--;//因为删除下标为i的元素后,该位置又被新的元素所占据,所以要重新检测该位置
}
}你试试这段代码吧本回答被提问者和网友采纳
if(array[i]==='3'){
arr.splice(i,1);//从下标为i的元素开始,连续删除1个元素
i--;//因为删除下标为i的元素后,该位置又被新的元素所占据,所以要重新检测该位置
}
}你试试这段代码吧本回答被提问者和网友采纳
第3个回答 2016-06-12
<script>
var a = [3,4,5,6,7,8,9];
$.each(a,function(index,item){
// index是索引值(即下标) item是每次遍历得到的值;
if(item==7){
a.splice(index,1);
}
});
</script>
下面是运行结果,7被删除!
第4个回答 2015-06-10
Array.prototype.deleteByContent = function(content) {
for(var i=0; i<this.length; i++) {
if (this[i] == content) {
this.splice(i, 1);
return;//如果要删除内容全部为content的数据,就删除return
}
}
}
调用方法:
[1,2,3,666,333,666].deleteByContent(333)
for(var i=0; i<this.length; i++) {
if (this[i] == content) {
this.splice(i, 1);
return;//如果要删除内容全部为content的数据,就删除return
}
}
}
调用方法:
[1,2,3,666,333,666].deleteByContent(333)