摘要:過濾掉等于的數(shù)組元素返回一個新數(shù)組,數(shù)組中的元素為原始數(shù)組元素調(diào)用函數(shù)處理后的值數(shù)組元素平方用于檢測數(shù)組中的元素是否滿足指定條件如果有一個元素滿足條件,則表達(dá)式返回剩余的元素不會再執(zhí)行檢測如果沒有滿足條件的元素,則返回。
數(shù)組常用方法
創(chuàng)建數(shù)組
var fruits = ["Apple", "Banana"]; console.log(fruits.length);
通過索引訪問數(shù)組元素
var first = fruits[0]; // Apple
遍歷數(shù)組
for(var i = fruits.length-1;i >=0 ; i--){ console.log(fruits[i]); } for(var i = 0;i < fruits.length; i++){ console.log(fruits[i]); } fruits.forEach(function (item, index, array) { console.log(item, index); });
添加元素到數(shù)組的末尾
var newLength = fruits.push("Orange"); // ["Apple", "Banana", "Orange"]
刪除數(shù)組末尾的元素
var last = fruits.pop(); // remove Orange (from the end) // ["Apple", "Banana"];
刪除數(shù)組最前面(頭部)的元素
var first = fruits.shift(); // remove Apple from the front // ["Banana"];
添加元素到數(shù)組的頭部
var newLength = fruits.unshift("Strawberry") // add to the front // ["Strawberry", "Banana"];
找出某個元素在數(shù)組中的索引
indexOf 該方法用來檢索某項數(shù)組出現(xiàn)的位置,出現(xiàn)多次的話只記錄第一次出現(xiàn)的位置
var index = fruits.indexOf("Banana"); // 1
通過索引刪除某個元素
var removedItem = fruits.splice(pos, 1); // this is how to remove an item // ["Strawberry", "Mango"]
從一個索引位置刪除多個元素
會改變原數(shù)組
var vegetables = ["Cabbage", "Turnip", "Radish", "Carrot"]; var pos = 1, n = 2; var removedItems = vegetables.splice(pos, n); console.log(vegetables); // ["Cabbage", "Carrot"] console.log(removedItems); // ["Turnip", "Radish"]
復(fù)制一個數(shù)組
從某個已有的數(shù)組返回選定的元素??衫斫鉃閿?shù)組截取,可接受兩個參數(shù),只填一個參數(shù)表示從該位置起截取至最后,填兩個參數(shù)表示要截取的頭和尾的位置
var shallowCopy = fruits.slice();
console.log(fruits["2"] == fruits["02"]); // true fruits[5] = "mango"; console.log(Object.keys(fruits)); // ["0", "1", "2", "5"] console.log(fruits.length); // 6
JavaScript 解釋器通過調(diào)用 toString 隱式轉(zhuǎn)換成字符串
Array.length 屬性會根據(jù)數(shù)組的內(nèi)置方法調(diào)整改變
數(shù)組方法
Array.from() 從類數(shù)組對象或者可迭代對象中創(chuàng)建一個新的數(shù)組實例。
Array.isArray() 用來判斷某個變量是否是一個數(shù)組對象。
Array.of() 根據(jù)一組參數(shù)來創(chuàng)建新的數(shù)組實例,支持任意的參數(shù)數(shù)量和類型。
實例方法
所有數(shù)組實例都會從 Array.prototype 繼承屬性和方法。修改 Array 的原型會影響到所有的數(shù)組實例。
concat()
連接兩個或更多的數(shù)組,并返回結(jié)果
var arr = [ 1, 2, 3 ]; var arr2= arr.concat("4", "5", "6"); //["1", "2", "3", "4", "5", "6"];
join()
把數(shù)組的所有元素放入一個字符串并通過指定的分隔符進(jìn)行分隔
arr.join("+"); //"1+2+3";
reverse()
反轉(zhuǎn)數(shù)組中元素的順序。
arr.reverse(); console.log(arr); // [3, 2, 1];
sort()
數(shù)組排序 按照字符串的方式來排序。
toString()
把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果
filter()
創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。
//過濾掉等于 2 的數(shù)組元素: function isBigEnough(element, index, array) { return (element == 2); } arr.filter(isBigEnough) //2
map()
返回一個新數(shù)組,數(shù)組中的元素為原始數(shù)組元素調(diào)用函數(shù)處理后的值
//數(shù)組元素平方: function two(x) { return x*x; } console.log(arr.map(two))
some()
用于檢測數(shù)組中的元素是否滿足指定條件,如果有一個元素滿足條件,則表達(dá)式返回true, 剩余的元素不會再執(zhí)行檢測,如果沒有滿足條件的元素,則返回false。
function whoBig(element, index, array) { return (element >= 100); } arr.some(whoBig) //false
every()
用于檢測數(shù)組所有元素是否都符合指定條件,如果數(shù)組中檢測到有一個元素不滿足,則整個表達(dá)式返回false,且剩余的元素不會再進(jìn)行檢測。
function whoBig(element, index, array) { return (element >= 4); } arr.every(whoBig) //false
find()
返回傳入一個測試條件,符合條件的數(shù)組第一個元素,當(dāng)數(shù)組中的元素在測試條件時返回true時, find() 返回符合條件的元素,之后的值不會再調(diào)用執(zhí)行函數(shù)。如果沒有符合條件的元素返回 undefined
const pets = [ { type: "Dog", name: "Max"}, { type: "Cat", name: "Karl"}, { type: "Dog", name: "Tommy"}, ]; var pet = pets.find(pet => pet.type ==="Dog" && pet.name === "Tommy"); console.log(pet); // { type: "Dog", name: "Tommy" }
reduce()
接收一個函數(shù)作為累加器,數(shù)組中的每個值(從左到右)開始縮減,最終計算為一個值
var arr = [1,2,3]; var sum = arr.reduce(function(prev, cur, index, arr) { console.log(prev, cur, index); return prev + cur; }) console.log(arr, sum);
數(shù)組去重
function unique(arr) { var result = []; for (var i = arr.length - 1; i >= 0; i--) { if(result.indexOf(arr[i])==-1){ result.push(arr[i]); } } return result; } var arr = [1,2,3,4,5,2,2,2,"test","king","test"]; console.log(unique(arr)); function unique1(arr){ var obj = {},result = []; for (var i = arr.length - 1; i >= 0; i--) { if(!obj[arr[i]]){ obj[arr[i]] = true; result.push(arr[i]); } } return result; } console.log(unique1(arr)); function unique2(arr){ arr.sort(); var result =[]; for (var i = arr.length - 1; i >= 0; i--) { if(arr[i]!=result[result.length-1]){ result.push(arr[i]); } } return result; } console.log(unique2(arr)); function unique3(a) { return Array.from(new Set(a)); }
感謝
https://juejin.im/post/5a8663...
https://developer.mozilla.org...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92979.html
摘要:簡介是對象表示法的縮寫是一種數(shù)據(jù)格式而不是一種編程語言用來表示結(jié)構(gòu)化數(shù)據(jù)是的一個嚴(yán)格子集并不從屬于很多編程語言都可以用數(shù)據(jù)格式語法語法可以表示以下三種類型的值簡單值字符串?dāng)?shù)值布爾值但是不支持對象數(shù)組不支持變量函數(shù)對象實例簡單值字符串?dāng)?shù)字布爾 JSON 簡介 JSON是JavaScript Object Notation(JavaScript對象表示法)的縮寫 JSON是一種數(shù)據(jù)格式,...
摘要:讓子的原型鏈指向父的實例父實例化的對象讓父的屬性創(chuàng)建在子的上把的方法應(yīng)用到這個對象身上傳遞一個數(shù)組或,而就要一個個地傳過案例中的繼承在中實現(xiàn)繼承等價于 繼承 call實現(xiàn)繼承 用于實現(xiàn)函數(shù)繼承,call的第二個參數(shù)可以是任意類型 function Animal(){ this.name = ; this.say = function(){ console...
摘要:不能用于機(jī)器學(xué)習(xí)太慢幻覺矩陣操作太難有函數(shù)庫啊,比如只能用于前端開發(fā)開發(fā)者笑了機(jī)器學(xué)習(xí)庫都是開發(fā)者機(jī)器學(xué)習(xí)庫神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)自然語言處理卷積神經(jīng)網(wǎng)絡(luò)一系列庫神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)我們將使用來實現(xiàn)線性回歸,源代碼在倉庫。 譯者按: AI時代,不會機(jī)器學(xué)習(xí)的JavaScript開發(fā)者不是好的前端工程師。 原文: Machine Learning with JavaScript : Part 1 ...
摘要:最后舉兩個例子,回顧上面的內(nèi)容例一改變的是數(shù)組元素中屬性,由于創(chuàng)建的的指令,因此這里直接由指令更新對應(yīng)元素的內(nèi)容。 下面例子來自官網(wǎng),雖然看上去就比Hello World多了一個v-for,但是內(nèi)部多了好多的處理過程。但是這就是框架,只給你留下最美妙的東西,讓生活變得簡單。 {{ todo.text }} ...
閱讀 2438·2021-11-18 10:02
閱讀 699·2021-10-08 10:04
閱讀 2276·2021-09-03 10:51
閱讀 3557·2019-08-30 15:44
閱讀 2811·2019-08-29 14:09
閱讀 2477·2019-08-29 12:21
閱讀 2074·2019-08-26 13:45
閱讀 1815·2019-08-26 13:25