国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

learning javascript - 數組

zzir / 2137人閱讀

摘要:過濾掉等于的數組元素返回一個新數組,數組中的元素為原始數組元素調用函數處理后的值數組元素平方用于檢測數組中的元素是否滿足指定條件如果有一個元素滿足條件,則表達式返回剩余的元素不會再執行檢測如果沒有滿足條件的元素,則返回。

數組常用方法

創建數組

var fruits = ["Apple", "Banana"];

console.log(fruits.length);

通過索引訪問數組元素

var first = fruits[0]; // Apple

遍歷數組

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);
});

添加元素到數組的末尾

var newLength = fruits.push("Orange"); // ["Apple", "Banana", "Orange"]

刪除數組末尾的元素

var last = fruits.pop(); // remove Orange (from the end) 
// ["Apple", "Banana"];

刪除數組最前面(頭部)的元素

var first = fruits.shift(); // remove Apple from the front
// ["Banana"];

添加元素到數組的頭部

var newLength = fruits.unshift("Strawberry") // add to the front
// ["Strawberry", "Banana"];

找出某個元素在數組中的索引

indexOf 該方法用來檢索某項數組出現的位置,出現多次的話只記錄第一次出現的位置

var index = fruits.indexOf("Banana"); // 1

通過索引刪除某個元素

var removedItem = fruits.splice(pos, 1); // this is how to remove an item

// ["Strawberry", "Mango"]

從一個索引位置刪除多個元素

會改變原數組

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"]

復制一個數組

從某個已有的數組返回選定的元素。可理解為數組截取,可接受兩個參數,只填一個參數表示從該位置起截取至最后,填兩個參數表示要截取的頭和尾的位置

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 解釋器通過調用 toString 隱式轉換成字符串

Array.length 屬性會根據數組的內置方法調整改變

數組方法

Array.from() 從類數組對象或者可迭代對象中創建一個新的數組實例。

Array.isArray() 用來判斷某個變量是否是一個數組對象。

Array.of() 根據一組參數來創建新的數組實例,支持任意的參數數量和類型。

實例方法

所有數組實例都會從 Array.prototype 繼承屬性和方法。修改 Array 的原型會影響到所有的數組實例。

concat()

連接兩個或更多的數組,并返回結果

var arr = [ 1, 2, 3 ];
var arr2= arr.concat("4", "5", "6");   //["1", "2", "3", "4", "5", "6"];

join()

把數組的所有元素放入一個字符串并通過指定的分隔符進行分隔

arr.join("+");   //"1+2+3";

reverse()

反轉數組中元素的順序。

arr.reverse(); 
console.log(arr);   // [3, 2, 1];

sort()

數組排序 按照字符串的方式來排序。

toString()

把數組轉換為字符串,并返回結果

filter()

創建一個新的數組,新數組中的元素是通過檢查指定數組中符合條件的所有元素。

//過濾掉等于 2 的數組元素:
function isBigEnough(element, index, array) {
    return (element == 2);
}

arr.filter(isBigEnough)   //2

map()

返回一個新數組,數組中的元素為原始數組元素調用函數處理后的值

//數組元素平方:
function two(x) {
    return x*x;
}
console.log(arr.map(two))

some()

用于檢測數組中的元素是否滿足指定條件,如果有一個元素滿足條件,則表達式返回true, 剩余的元素不會再執行檢測,如果沒有滿足條件的元素,則返回false。

function whoBig(element, index, array) {
    return (element >= 100);
}

arr.some(whoBig)   //false

every()

用于檢測數組所有元素是否都符合指定條件,如果數組中檢測到有一個元素不滿足,則整個表達式返回false,且剩余的元素不會再進行檢測。

function whoBig(element, index, array) {
    return (element >= 4);
}

arr.every(whoBig)   //false

find()

返回傳入一個測試條件,符合條件的數組第一個元素,當數組中的元素在測試條件時返回true時, find() 返回符合條件的元素,之后的值不會再調用執行函數。如果沒有符合條件的元素返回 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()

接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值

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); 

數組去重

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...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92979.html

相關文章

  • 5分鐘了解JSON那些事兒

    摘要:簡介是對象表示法的縮寫是一種數據格式而不是一種編程語言用來表示結構化數據是的一個嚴格子集并不從屬于很多編程語言都可以用數據格式語法語法可以表示以下三種類型的值簡單值字符串數值布爾值但是不支持對象數組不支持變量函數對象實例簡單值字符串數字布爾 JSON 簡介 JSON是JavaScript Object Notation(JavaScript對象表示法)的縮寫 JSON是一種數據格式,...

    ad6623 評論0 收藏0
  • learning javascript - 繼承

    摘要:讓子的原型鏈指向父的實例父實例化的對象讓父的屬性創建在子的上把的方法應用到這個對象身上傳遞一個數組或,而就要一個個地傳過案例中的繼承在中實現繼承等價于 繼承 call實現繼承 用于實現函數繼承,call的第二個參數可以是任意類型 function Animal(){ this.name = ; this.say = function(){ console...

    inapt 評論0 收藏0
  • JavaScript機器學習之線性回歸

    摘要:不能用于機器學習太慢幻覺矩陣操作太難有函數庫啊,比如只能用于前端開發開發者笑了機器學習庫都是開發者機器學習庫神經網絡神經網絡自然語言處理卷積神經網絡一系列庫神經網絡深度學習我們將使用來實現線性回歸,源代碼在倉庫。 譯者按: AI時代,不會機器學習的JavaScript開發者不是好的前端工程師。 原文: Machine Learning with JavaScript : Part 1 ...

    gitmilk 評論0 收藏0
  • Vue.js源碼(2):初探List Rendering

    摘要:最后舉兩個例子,回顧上面的內容例一改變的是數組元素中屬性,由于創建的的指令,因此這里直接由指令更新對應元素的內容。 下面例子來自官網,雖然看上去就比Hello World多了一個v-for,但是內部多了好多的處理過程。但是這就是框架,只給你留下最美妙的東西,讓生活變得簡單。 {{ todo.text }} ...

    shiyang6017 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<