<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style> /* 填写样式 */ </style> </head> <body> <!-- 填写标签 --> <script type="text/javascript"> // 填写JavaScript function removeWithoutCopy(arr, item) { for(let i=0; i<arr.length; i++) { if(item == arr[i]) { arr.splice(i,1); i--; } } return arr; } </script> </body> </html>
for(const index in arr){ if(Object.hasOwn(arr,index)){ if(arr[index]===item){ arr.splice(index,1); } } console.log("11",index); }正确答案:评论区
function removeWithoutCopy(arr, item) { while(arr.indexOf(item)!==-1){ arr.splice(arr.indexOf(item),1); } return arr; }
chrome里是对的 这里编辑器就不对了 function removeWithoutCopy(arr, item) { var newArr = Array.from(new Set(arr)) newArr.splice(newArr.indexOf(item),1) return newArr }
function removeWithoutCopy(arr, item) { // splice删除元素方法: // splice(index):删除index及之后的所有元素。若 index < 0 , 则删除最后-index个元素,返回删除后的数组 // splice(index,howmany):删除从index位置开始的数,howmany为删除的个数,若 howmany 小于等于 0,则不删除 for (var i = 0; i < arr.length; i++) { if (arr[i] == item) { arr.splice(i, 1); i--; } } return arr }
function removeWithoutCopy(arr, item) { //移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果数组返回 /*存在问题:删掉的位置,后一个元素补上,该元素未进行运算 arr.forEach((ite,i)=>{ if(ite==item){ arr.splice(i,1); } }); return arr;*/ /*法一*/ for(let i=0;i<arr.length;i++){ if(arr[i]==item){ arr.splice(i,1); i--; //避免漏掉下一个元素 } } return arr; /*法二:indexOf():根据字符串找到元素的索引 判断是否存在相等的元素,存在 则删除。indexOf返回-1,即不存在该元素;不等于-1,则存在该元素 使得其值相等 */ while(arr.indexOf(item)!=-1){ arr.splice(arr.indexOf(item),1); } /*法三*/ for(let i=arr.length-1;i>=0;i--){ if(arr[i]==item){ arr.splice(i,1); } } return arr; }据评论总结的方法
function removeWithoutCopy(arr, item) { var flag=0; for(var i=0;i<arr.length;i++){ if(arr[i]!=item){ arr[flag]=arr[i]; flag++; } } arr.length=flag; return arr; }dbq我真是太菜了orz