陣列--移除陣列中指定的元素,不改變原陣列和改變原陣列
強烈推薦30個原生JavaScript的demo,包括canvas時鐘特效、自定義視訊播放器、搜尋欄快速匹配、fetch訪問資源、console除錯技巧等,鞏固基礎和麵試的寶貴資料,先fork後學習,詳見點選開啟連結,歡迎點贊~~~謝謝,共同進步學習!
題目描述
移除陣列 arr 中的所有值與 item 相等的元素,直接在給定的 arr 陣列上進行操作,並將結果返回
示例1
輸入
[1, 2, 2, 3, 4, 2, 2], 2
輸出
[1, 3, 4]
解法:
一.不直接修改陣列
題目描述
移除陣列 arr 中的所有值與 item 相等的元素。不要直接修改陣列 arr,結果返回新的陣列
輸入例子:
remove([1, 2, 3, 4, 2], 2)
輸出例子:
[1, 3, 4]
方法1
[javascript] view plain copy
- function remove(arr, item) {
- var result=[];
- for(var i=0; i<arr.length; i++){
- if(arr[i]!=item){
- result.push(arr[i]);
- }
- }
- return result;
- }
方法2
[javascript] view plain copy
- function remove(arr, item) {
- var result=[];
- arr.forEach(function(element){
- if(element!=item){
- result.push(element);
- }
- });
- return result;
- }
forEach的用法可參考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
方法3
function removeWithoutCopy(arr, item) {
return arr.filter(function(ele){
return ele!=item;
})
}
二.直接修改陣列
題目描述
移除陣列 arr 中的所有值與 item 相等的元素,直接在給定的 arr 陣列上進行操作,並將結果返回
輸入例子:
removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2)
輸出例子:
[1, 3, 4]
方法1:
[javascript] view plain copy
- function removeWithoutCopy(arr, item) {
- for(var i = 0; i < arr.length; i++){
- if(arr[i] == item){
- //splice方法會改變陣列長度,當減掉一個元素後,後面的元素都會前移,因此需要相應減少i的值
- arr.splice(i,1);
- i--;
- }
- }
- return arr;
- }
或
[javascript] view plain copy
- function removeWithoutCopy(arr, item) {
- for(var i=0; i<arr.length;){
- if(item==arr[i]){
- arr.splice(i,1);
- }else {
- i++;
- }
- }
- return arr;
- }
方法2:
[javascript] view plain copy
- function removeWithoutCopy(arr, item) {
- for(var i=arr.length-1;i>=0;i--)
- {
- if(arr[i]==item)
- {
- arr.splice(i,1);
- }
- }
- return arr;
- }
- 倒著檢測;不用考慮位置影響
相關文章
- 重寫陣列的方法(改變原陣列)陣列
- golang 陣列去重 移除陣列指定元素Golang陣列
- js中那些方法不改變原來的陣列物件JS陣列物件
- 陣列去重,地址不改變陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- js將一個陣列追加到原陣列中JS陣列
- js如何獲取指定陣列元素在陣列中的索引值JS陣列索引
- php 迴圈陣列引用傳值改變陣列本身的值PHP陣列
- Javascript - 陣列和陣列的方法JavaScript陣列
- 移除陣列 arr 中的所有值與 item 相等的元素。不要直接修改陣列 arr,結果返回新的陣列陣列
- 陣列中每個陣列元素出現的次數陣列
- javascript中常用的陣列操作方法,以及是否會改變原始陣列JavaScript陣列
- JavaScript 刪除陣列指定元素JavaScript陣列
- JavaScript陣列檢索指定元素JavaScript陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 陣列的操作-變形陣列
- 指標陣列和陣列指標與二維陣列指標陣列
- Javascript如何改變陣列的長度?JavaScript陣列
- Java擷取指定區間內的陣列元素並存入新陣列Java陣列
- 矩陣和陣列矩陣陣列
- 陣列元素逆序陣列
- PHP陣列學習之計算陣列元素總和PHP陣列
- 陣列1——求一個陣列的最大子陣列陣列
- JavaScript中對陣列和陣列API的認識JavaScript陣列API
- 陣列指標和指標陣列陣列指標
- js刪除陣列元素中的指定值JS陣列
- 計蒜客 移除陣列中的重複元素陣列
- Oracle之可變陣列Oracle陣列
- js陣列物件複製拷貝不改變原來的值,深拷貝JS陣列物件
- 陣列,陣列類,SyStem類陣列
- 陣列結構之陣列陣列
- Java陣列03:陣列使用Java陣列
- iOS遍歷陣列相同值元素到另一陣列中同一物件的子陣列iOS陣列物件
- 如何將一個陣列中的元素插入另一個陣列陣列
- JavaScript 陣列 指定索引位置插入元素JavaScript陣列索引
- JavaScript刪除陣列中指定元素JavaScript陣列
- 陣列filter方法對陣列元素進行過濾陣列Filter
- bash指令碼中的普通陣列和關聯陣列指令碼陣列