JavaScript使用for迴圈和splice刪除陣列指定元素的注意點
在JavaScript裡可以結合for迴圈和splice來刪除陣列指定的元素。但是要注意刪除元素後,陣列索引會發生改變
示例
var arr = ["a","b","c","a",'a',"b"]; var ele = "a"; for(var i = 0; i < arr.length; ) { if(arr[i] == ele) { arr.splice(i, 1); } else { i++; //只有在沒有刪除元素時才對索引 i++ } }
注意點:
- for迴圈的索引邊界應該為動態的,arr.length
- 只有不是被刪除元素時才對索引做偏移i++
刪除陣列多個元素也可以使用filter這種取巧的方式,不需要再原陣列上刪除元素。
var arr = ["a","b","c","a",'a',"b"]; var ele = "a"; var newarr =arr.filter(function(item){ return item!==ele);
原帖地址https://majing.io/posts/10000006121204
相關推薦
JavaScript使用for迴圈和splice刪除陣列指定元素的注意點
在JavaScript裡可以結合for迴圈和splice來刪除陣列指定的元素。但是要注意刪除元素後,陣列索引會發生改變 示例 var arr = ["a","b","c","a",'a',"b"]; var ele = "a"; for(var
Array.splice() 刪除陣列指定位置、指定個數的元素。並可插入新元素
定義: splice() 方法向/從陣列中新增/刪除專案,然後返回被刪除的專案。 語法: ArrayObject.splice(index,howmany,item1,.....,itemX) index 必需。整數,規定新增/刪除專案的位置,使用負數可從陣列結
Java刪除陣列指定元素,並壓縮陣列
定義原陣列和接收結果的陣列 int[] array1 = new int[]{1, 8, 6, 5, 7, 12, 31, 89, 100}; int[] result; printArray(array1); result = resetArray(array
es6 刪除陣列指定元素
arr.splice(arr.findIndex(item => item.id === id), 1) //item 只是引數可以寫成 i 或者 v 都可以 , //後面的額id是陣列的id,是不能隨便寫的,如果你數組裡面寫的是id,這裡就寫id,如果數組裡面寫的是num,那這裡就寫num
js刪除陣列指定元素
刪除js陣列中制定的元素,這裡用到了jquery. var a = new Array("a","b","cc","d3"); //刪除a陣列的cc元素 //jQuery.inArray()函式用於在陣列中搜索指定的值,並返回其索引值。如果陣列中不存在該值,則返回 -1。 該函式屬於全域性jQuery
jquery 刪除陣列指定元素
var arr = [1, 2, 3, 4, 5]; var removeItem = 2; arr = $.grep(arr, function(value) { return value != removeItem; });
PHP刪除陣列指定元素
用unset刪除陣列中的某一下時,陣列的下標不會從新排序 例如 $a=array("red", "green", "blue", "yellow"); count($a); //得到4 unset($a[1]); //刪除第二個元素 c
js 根據元素刪除陣列指定的元素
二話不說直接上程式碼: var fileId = fileIds.split(","); if(contains(fileId,id)){ var s = fileId.splice($.inArray(id,fileId),1); console.log(s); }
Javascript迴圈刪除陣列中元素的幾種方法示例
發現問題 大家在碼程式碼的過程中,經常會遇到在迴圈中移除指定元素的需求。按照常規的思路,直接一個for迴圈,然後在迴圈裡面來個if判斷,在判斷中刪除掉指定元素即可。但是實際情況往往不會像預想的那樣順利執行。 下面以一段Javascript程式碼為例演示這一過程。
delete,remove,splice刪除陣列元素的區別
remove() 方法用於從下拉列表刪除選項。 語法 selectObject.remove(index) 引數 描述 index 必需。規定要刪除的選項的索引號。 說明 該方法從選項陣列的指定位置移除 <option> 元素。如果指定
splice和delete刪除數組元素的區別
eight 方法 成了 排序 刪除元素 def 內容 ice src 有這樣一個數組: 當我們用delete方法進行刪除時: 此時發現刪除元素的下標依然存在,只是內容被刪除,數組長度依舊為3 打印下標為0的元素的內容為undefied 而用spli
js解決splice刪除陣列某一項,索引錯亂問題
問題:在for迴圈中,對陣列進行操作,刪除陣列某一項使用splice,因索引錯亂導致刪除有漏 解決:使用倒序,從索引最後一項開始遍歷 for (let len = this.correctJson.length, i = len - 1; i >= 0; i--) { if
splice 刪除陣列中對應的物件 $store 通過倉庫刪除陣列中的物件
感悟:想法和思路才是最重要的、程式碼才是其次,我用了一種麻煩的方法來實現,中間還出錯了,解決了很久。後來請教公司大神,忽然醒悟還有一種超級簡單的方法來實現,其實之前自己也是通過這種簡單地方式來實現的,但是這次解決這個問題的時候就是沒有想到,看來真的遇到問題的時候還是要不恥下問的。 專案詳情:邏輯
依次從鍵盤輸入20個無序整數,刪除陣列重複元素並按從小到大排序
#include<stdio.h> //依次從鍵盤輸入20個無序整數,刪除陣列重複元素並按從小到大排序 #include #include using namespace std; #define maxn 1000 int
[日常練習] 8. 基於有序陣列指定元素的二分查詢C語言實現
問題描述: 採用折半(二分)查詢的方式,在整型有序陣列中查詢想要的數字,找到了返回下標,找不到返回-1。 問題分析及原始碼: 有序陣列它的關鍵就是陣列下標最小值及最大值,二分查詢就是針對有序陣列最為簡單的一種查詢方式。關鍵注意迴圈的建立及跳出條件,當左側left都以經大
藍橋杯 演算法訓練 ALGO-79 刪除陣列零元素
演算法訓練 刪除陣列零元素 時間限制:1.0s 記憶體限制:512.0MB 從鍵盤讀入n個整數放入陣列中,編寫函式CompactIntegers,刪除陣列中所有值為0的元素,其後元素向陣列首端移動。注意,CompactIntegers函式需要接受陣列及其元素個數作為引數,函式返回值應
[藍橋杯]ALGO-79.刪除陣列零元素
從鍵盤讀入n個整數放入陣列中,編寫函式CompactIntegers,刪除陣列中所有值為0的元素,其後元素向陣列首端移動。注意,CompactIntegers函式需要接受陣列及其元素個數作為引數,函式返回值應為刪除操作執行後陣列的新元素個數。輸出刪除後陣列中元素的個數並依
#定義泛型類#分別求Integer和Double型陣列中元素的最大值,最小值,平均值
public class NumFunc<T extends Number> { T[]a; public NumFunc(T[]a){ super(); this.a=a; } private void so
C語言 刪除陣列 某個元素
方法1: /* name: c語言 刪除陣列的某個元素 tip: 陣列元素的增/刪/ 改/查(簡單遍歷就ok) 陣列增刪操作在c語言中沒有相應的函式------我們最好是 自己寫個函式儲存好 注意程式碼縮排,對齊 */ #include<stdio.h&g
微信小程式中如何修改陣列指定元素(或物件)
1、更改陣列中的值 可以改變陣列中某一個特定下標的值 //陣列 paraList:[{txt:'123',chose:false},{txt:'1234',chose:false}] //細節 l