這篇文章帶給大家的內容是關於js中對陣列進行操作的方法總結(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
1.找出元素item 在給定數組arr 中的位置
function indexOf(arr, item) { if (Array.prototype.indexOf){ //判断原型中是否支持该方法 return arr.indexOf(item); } else { for (var i = 0; i < arr.length; i++){ if (arr[i] === item){ return i; } } } return -1; }
2.計算給定數組arr 中所有元素的總和
//forEach遍历: function sum(arr) { var s = 0; arr.forEach(function(val, idx, arr) { s += val; }, 0); return s; }; //eval: function sum(arr) { return eval(arr.join("+")); };
3.移除陣列arr 中的所有值與item 相等的元素。不要直接修改陣列arr,結果傳回新的陣列
//splice() function remove(arr,item){ var newarr = arr.slice(0); for(var i=0;i<newarr.length;i++){ if(newarr[i] == item){ newarr.splice(i,1); i--; } } return newarr; }//push() function remove(arr,item){ var newarr = []; for(var i=0;i<arr.length;i++){ if(arr[i] != item){ newarr.push(arr[i]); } } return newarr; }//Array.prototype.filter() function remove(arr,item){ return arr.filter(function(ele){ return ele != item; }) }
4.移除陣列arr 中的所有值與item 相等的元素,直接在給定的arr 陣列上進行操作,並將結果傳回
//splice function removeWithoutCopy(arr, item) { for(var i=0; i<arr.length; i++) { if(item == arr[i]) { arr.splice(i,1); i--; } } return arr; }//while function removeWithoutCopy(arr, item) { for(var i in arr){ while(arr[i]==item){ arr.splice(i,1); } } return arr; }
5.在陣列arr 結尾加入元素item。不要直接修改陣列 arr,結果傳回新的陣列
//普通的迭代拷贝 var append = function(arr, item) { var length = arr.length, newArr = []; for (var i = 0; i < length; i++) { newArr.push(arr[i]); } newArr.push(item); return newArr; };//使用slice浅拷贝+push组合 function append(arr, item) { var newArr=arr.slice(0); newArr.push(item); return newArr; }
6.刪除陣列 arr 最後一個元素。不要直接修改陣列 arr,結果傳回新的陣列
//利用slice function truncate(arr) { return arr.slice(0,-1); } //利用filter function truncate(arr) { return arr.filter(function(v,i,ar) { return i!==ar.length-1; }); } //利用push.apply+pop function truncate(arr) { var newArr=[]; [].push.apply(newArr, arr); newArr.pop(); return newArr; } //利用join+split+pop 注意!!!:数据类型会变成字符型 function truncate(arr) { var newArr = arr.join().split(','); newArr.pop(); return newArr; }
7.在陣列 arr 開頭新增元素 item。不要直接修改陣列 arr,結果傳回新的陣列
//利用concat function prepend(arr, item) { return [item].concat(arr); } //使用push.apply function prepend(arr, item) { var newArr=[item]; [].push.apply(newArr, arr); return newArr; } //利用slice+unshift/splice function prepend(arr, item) { var newArr=arr.slice(0); newArr.unshift(item);//newArr.splice(0,0,item); return newArr; }
8.刪除陣列 arr 第一個元素。不要直接修改陣列 arr,結果傳回新的陣列
//利用slice function curtail(arr) { return arr.slice(1); } //利用filter function curtail(arr) { return arr.filter(function(v,i) { return i!==0; }); } //利用push.apply+shift function curtail(arr) { var newArr=[]; [].push.apply(newArr, arr); newArr.shift(); return newArr; }
9.合併陣列 arr1 和陣列 arr2。不要直接修改陣列 arr,結果傳回新的陣列
//利用concat function concat(arr1, arr2) { return arr1.concat(arr2); } //利用slice+push.apply function concat(arr1, arr2) { var newArr=arr1.slice(0); [].push.apply(newArr, arr2); return newArr; } //利用slice+push function concat(arr1, arr2) { var newArr=arr1.slice(0); for(var i=0;i<arr2.length;i++){ newArr.push(arr2[i]); } return newArr; }
10.在陣列 arr 的 index 處新增元素 item。不要直接修改陣列arr,結果回傳新的陣列
//利用slice+splicefunction insert(arr, item, index) { var newArr=arr.slice(0); newArr.splice(index,0,item); return newArr; }//利用push.apply+splicefunction insert(arr, item, index) { var newArr=[]; [].push.apply(newArr, arr); newArr.splice(index,0,item); return newArr; }
11.統計數組arr 中值等於item 的元素出現的次數
//filter()-->利用指定的函数确定是否在返回的数组中包含某一项 function count(arr, item) { var count = arr.filter(function(a) { return a === item; //返回true的项组成的数组 }); return count.length; } //map()-->对数组中的每一项进行给定函数, //返回每次函数条用的结果组成的数组; function count(arr, item) { var count = 0; arr.map(function(a) { if(a === item) { count++; } }); return count; }//forEach()-->对数组中的每一项运行传入的函数 function count(arr, item) { var count = 0; arr.forEach(function(a) { a === item ? count++ : 0; }); return count; }
12.找出數組arr 中重複出現過的元素
//两次遍历 function duplicates(arr) { //声明两个数组,a数组用来存放结果,b数组用来存放arr中每个元素的个数 var a = [],b = []; //遍历arr,如果以arr中元素为下标的的b元素已存在,则该b元素加1,否则设置为1 for(var i = 0; i < arr.length; i++){ if(!b[arr[i]]){ b[arr[i]] = 1; continue; } b[arr[i]]++; } //遍历b数组,将其中元素值大于1的元素下标存入a数组中 for(var i = 0; i < b.length; i++){ if(b[i] > 1){ a.push(i); } } return a; } //先排序,如果后一个与前一个相等且未保存,则保存。 function duplicates(arr) { var a=arr.sort(),b=[]; for(var i in a){ if(a[i]==a[i-1] && b.indexOf(a[i])==-1) b.push(a[i]); } return b; } //先排序然后再判断function duplicates(arr) { var new_arr = arr.sort();//先把arr排序 var res = [] ;//目标容器 for( var i = 0 ; i < new_arr.length ; i++){ if(new_arr[i] == new_arr[i+1] && new_arr[i] !=new_arr[i-1]){//判断是否重复,是否已经放入容器 res.push(new_arr[i]); } } return res;
13.為數組arr 中的每個元素求二次方。不要直接修改陣列arr,結果傳回新的陣列
function square(arr) { //声明一个新的数组存放结果 var a = []; arr.forEach(function(e){ //将arr中的每一个元素求平方后,加入到a数组中 a.push(e*e); }); return a; } // 使用map function square(arr) { return arr.map(function(e) { return e * e; }) } // ES6箭头函数版 const square = arr => arr.map(e => e * e);
14.在陣列arr 中,找出值與item 相等的元素出現的所有位置
//forEach function findAllOccurrences(arr, target) { var a=[]; arr.forEach(function(e,index){ if(e==target) a.push(index); }) return a; } function findAllOccurrences(arr, target) { var temp = []; arr.forEach(function(val,index){ val !== target || temp.push(index); }); return temp; }//filter function findAllOccurrences(arr, target) { var result=[]; arr.filter(function(item,index){ return item===target&&result.push(index); }); return result; }
相關推薦:
以上是js中對數組進行操作的方法總結(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。