移除陣列 arr 中的所有值與 item 相等的元素。不要直接修改陣列 arr,結果返回新的陣列
不學習總是有危機感....
方法1 :
splice方法 : 從陣列中移除一個或多個元素,如果必要,在所移除的位置上插入新元素,返回所以出的元素.
arrayObj.splice(start,deleteCount,[item1,item2]);
arrayObj : 必選項.一個Array物件.
start 必選項.指定從陣列中移除元素的開始位置,這個位置從0開始計算的.
deleteCount: 必選項.要移除的元素的個數.
item1,item2: 可選項.要在所以出元素的位置上插入的新元素
說明: splice方法可以移除從start位置開始的指定個數的元素並插入新元素,從而修改arrayObj,返回值是一個由所移除的元素組成的新的Array物件.
//普通迴圈
function remove(arr, item) {
var a = arr.slice(0); //擷取0到arr.length之間的長度
for(var i =0 ;i < a.length; i++)
{
if(a[i]===item){
a.splice(i,1);
i--; //很關鍵,因為上一步陣列中移除了元素,陣列長度改變了
}
}
return a;
}
方法二:
push 方法
將新元素新增到一個數組中,並返回陣列的新長度值.
語法: arrayObj.push([item[item2[...[itemN]]]])
引數:
arrayObj: 一個Array物件
item,item2,.....,itemN
可選項.該Array的新元素.
說明: 方法將以新元素出現的順序新增這些元素.如果引數之一為陣列,那麼該陣列將作為單個元素新增到陣列中.如果要合併兩個或多個數組中的元素,那應該使用concat方法.
如下:
forEach: 用於呼叫陣列的每個元素,並將元素傳遞給回撥函式
注意: forEach()對於空陣列是不會執行回撥函式的
語法: array.forEach(function(currentValue,index,arr),thisValue)
function(currentValue,index,arr)
currentValue:必須,當前元素
index:可選 當前元素的索引值
arr:可選,當前元素所屬的陣列物件
thisValue:可選,傳遞給函式的值一般用"this"值.如果這個引數為空,"undefined"回傳遞給"this"值
function remove(arr, item) {
var arrR=[];
arr.forEach(function(e){
if(e!==item){
arrR.push(e);
}
})
return arrR
}
方法三:
filter()方法建立一個新的陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素,但是filter不會對空陣列進行檢測,也不會改變原始陣列.
currentValue:必須,當前元素
index:可選 當前元素的索引值
arr:可選,當前元素所屬的陣列物件
thisValue:可選,傳遞給函式的值一般用"this"值.如果這個引數為空,"undefined"回傳遞給"this"值
返回值:返回陣列,包含了符合條件的所有元素,如果沒有符合條件的則返回空元素
語法: array.filter(function(courrentValue,index,arr),thisValue)
//filter
function remove(arr,item){
return arr.filter(function(ele){
return ele != item;
})
}
相關推薦
移除陣列 arr 中的所有值與 item 相等的元素。不要直接修改陣列 arr,結果返回新的陣列
不學習總是有危機感.... 方法1 : splice方法 : 從陣列中移除一個或多個元素,如果必要,在所移除的位置上插入新元素,返回所以出的元素. arrayObj.splice(start,deleteCount,[item1,item2]); arrayObj :
【JavaScript】牛客程式設計:在陣列 arr 中,查詢值與 item 相等的元素出現的所有位置
function findAllOccurrences(arr, target) { var a = [] arr.forEach(function(item, index) {
已知長度為n的線性表A採用順序儲存結構,請寫一個時間複雜度為O(n)、空間複雜度為O(1)的演算法,該演算法可刪除線性表中所有值為item的資料元素。
語言:C++ #include <iostream> using namespace std; typedef int ElemType; //定義 #define MAXSIZE 100 typedef struct {ElemType *elem; int length;}Sq
長度為n的順序表L,編寫一個時間複雜度為O(n),空間複雜度為O(1)的演算法,該演算法刪除線性表中所有值為X的元素
解法:用K記錄順序表L中不等於X的元素個數,邊掃描L邊統計K,並將不等於X的元素向前放置K位置上,最後修改L長度 void del_x_1(SqList &L,Elemtype x){ int k=0; for(i=0;i<L.length;i++) {
刪除線性表中所有值為x的元素,要求時間複雜度為O(n),空間複雜度為O(1)
思路:統計不等於x的個數,用k記錄不等於x的元素的個數。邊統計邊把當前元素放在第k個位置上,最後修改表的長度 public static void del(List<Integer> l
【JavaScript】牛客程式設計: 為陣列 arr 中的每個元素求二次方。不要直接修改陣列 arr,結果返回新的陣列
function square(arr) { var arr2 = [] for(var i=0; i<arr.length; i++) { arr2[i] = a
5.刪除數組arr的最後一個元素,不改變原數組,結果返回新數組。
cnblogs bsp pan arr ast 刪除 let del pop 方法一:slice()方法; var a=[1,5,‘ff‘,‘g‘,‘h‘,‘sd‘,‘g‘]; alert( deletelast(a)); function
演算法:給定整數型陣列,要求去除重複元素形成新陣列,並返回新陣列長度
/** * * @author VK * @Date 2016-12-19 10:48 * @Decribe 題目:給定一個整數型一維陣列,去除重複元素形成新陣列, * 並返回新陣列長度。不額外分配陣列空間 * */ public class
將陣列中的最大值與第一個元素交換,最小值與最後一個元素進行交換
**課堂案例: 將陣列中的最大值與第一個元素交換,將陣列中的最小值與最後一個元素進行交換** public class MaxAndMin{ public static void main(String[] args){ int
83. Remove Duplicates from Sorted List (移除連結串列中值相等的節點)
Given a sorted linked list, delete all duplicates such that each element appear only once. For exa
深入理解PHP中賦值與引用
str ring int 之前 不同 重新 small nts 計數 【原文】 先看下面的問題: 1 2 3 4 5 6 7 8 <?php $a = 10;//將常量值賦給變量,會為a分配內存空間 $b = $a;//變量賦值給變量,是不是
import os 路徑和移除路徑下面的所有文檔
nbsp OS txt list sys pytho os.chdir remove 移除 python3.5用法: import osimport syspath = os.chdir("G:/python/arc/")files = os.listdir(path)
怎麼移除一個字串中的前導空格
字串中的前導空格就是出現在字串中第一個非空格字元前的空格,我們使用方法lstrip()可以將它從字串中移除 a=' Ayushi '.lstrip() print(a)#Ayushi 可以看到,該字串既有前導字元,也有後綴字元,呼叫lstrip()去除了前導空格,如果我們想去除
【Python面試必看系列】之怎麼移除一個字串中的前導空格?
Q 20. 怎麼移除一個字串中的前導空格? 字串中的前導空格就是出現在字串中第一個非空格字元前的空格。我們使用方法 Istrip() 可以將它從字串中移除。 >>> ' Ayushi '.lstrip() 結果: ‘Ayushi ‘ 可以看到
資料結構--C語言--已知線性表中的元素以值遞增有序排列,並以單鏈表作儲存結構。試寫一高效演算法,刪除表中所有值大於mink且小於maxk的元素
#include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define LEN sizeof(struct LNode) struct LNode{ int data;//資料域 struct
從順序表L中刪除所有值為x的元素
#include <stdio.h> #define MAXSIZE 100 typedef struct { int elem[MAXSIZE]; int last; }SeqList; int creat(SeqList &L) { int a; printf("請輸入要建立
設計一個遞迴演算法刪除不帶頭節點單鏈表L中所有值為x的節點
#include "stdafx.h" #include<stdio.h> #include<malloc.h> #include<stdlib.h> typed
php中傳值與傳引用的有什麼區別
php傳值:在函式範圍內,改變變數值得大小,都不不會影響到函式外邊的變數值。 PHP按引用:在函式範圍內,對值的任何改變,在函式外部也有所體現,因為傳引用傳的是記憶體地址。 <?php //傳值 $a = 1; $b = 2; $b = $a; $a = 3; echo $b.
java中傳值與傳地址
相信學習過c的朋友們,對於傳值與傳地址比較熟悉,而在java中這樣的術語用的比較少,那麼到底存不存在傳值與傳地址呢? 答案肯定是:存在的!! 做下列總結: 說明:Student student=new Student();中student就可以看作是c裡面的指標