トピック1:配列内の特定の要素を削除します。
アイデア:
トピックでは特定のarr配列に対する操作が必要なため、削除された要素の後に他の要素をインストールするために、部門は新しい配列を作成します。他の要素を見つけることができます。メソッド、ここではspliceメソッド、クリックすると表示されます:splice(Start:number、deleteCount?:number)、つまり、Start:numberから開始し、deleteCount?:number要素を削除すると、ここに表示されます。アイデアがあります。最初に配列をトラバースし、指定された要素に等しい要素を判断するときに、iから要素を削除して、後者の要素が前面に実行されるようにします。指定された要素に等しい要素を削除してから、元の配列を操作できます。 。指定された要素と等しい要素を削除すると、他の要素の配列が得られます。
コード表示:
function f1(item){
let arr=[1,2,2,3,4,2,2]
for (let i = 0; i < arr.length; i++) {
if (item==arr[i]){
arr.splice(i,1) //splice(Start:number,deleteCount?:number)
i--; //因为每次删除一个元素后,后面的元素的下标就会-1,但是我们查找的时候,循环让i+1,所以我们只能会找到下一个元素的下标
//例如,当我们删除第二个元素后,后面的元素,即原始数组的第三个元素就会变为第二个,我们这时i变为了3,就不会再与改变后的数组第二个元素比较,导致这个元素不会被移除
}
}
for (let a of arr) {
console.log(a); //遍历数组
}
}
f1(2)
トピック2:配列内の繰り返し要素を見つける
アイデア:最初に、複製された要素配列を見つけ、複製された配列を再度トラバースし、各要素を最初の配列と比較する必要があります。それらが等しい場合、要素の数は+です。 1.比較が完了すると、重複排除後にすべての要素が配列と等しくなる回数を取得できます。回数が1より大きい場合は、要素が元の配列に複数回存在することを意味します。要素出力!
コード表示:
<script>
//去重
let arr=[1,2,4,4,3,3,1,5,3];
let removal=new Array(arr.length)
for (let i = 0; i < arr.length; i++) {
let flag = false
for (let n of removal) {
if (n == arr[i]) {
flag = true //如果相等,变为true
break
}
}
if (!flag) {
removal.push(arr[i]) //将去重的结果重新装进一个数组中
}
}
for (let n of removal) {
//遍历去重的数组
count(n); //调用函数,并将去重的数组中的元素作为参数传给函数
}
function count(x) {
//创建一个函数
let count=0; //定义一个累加的次数
for (let a of arr) {
//遍历初始的数组
if(a==x){
//如果去重的数等于初始的数组中的元素,就将该数次数+1
count++;
}
}
if(count>1){
//判断如果每个数的累加次数大于1时,说明该数在数组中是存在重复的
console.log(x); //输出
}
}
</script>