欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript數(shù)組操作總結(jié)

 更新時間:2022年10月17日 10:41:41   作者:愛思考的豬  
JavaScript中的Array對象與其他編程語言中的數(shù)組一樣,是一組數(shù)據(jù)的集合。在JavaScript中,數(shù)組里面的數(shù)據(jù)可以是不同類型的,并具有用于執(zhí)行數(shù)組常見操作的方法,本文整理了一些常用的,需要的可以參考一下

1.定義

數(shù)組是按次序依次排列的一組值

  • 任何數(shù)據(jù)類型都可以放入數(shù)組
  • 數(shù)組可以嵌套形成多維數(shù)組
const arr = [0,'1',{},function(){}];
//二維數(shù)組
const arr1 = [1,2,[3,4,5],6];

2.數(shù)組的本質(zhì)

數(shù)組是一種特殊的對象,數(shù)組的key是正整數(shù)字符串,我們一般使用數(shù)字鍵操作數(shù)組,會自動轉(zhuǎn)換成字符串

const arr = [];
arr['1'] = 1;
//1被自動轉(zhuǎn)換成'1'
console.log(arr[1],arr['1']); //1
typeof arr; //obejct

3.數(shù)組的length

數(shù)組的length計算的是數(shù)組中正整數(shù)的個數(shù),但你依然可以將數(shù)據(jù)的key設(shè)置為其它類型的值,不過這不會增加length的長度

const arr = [];
arr[2.1] = 2.1;
arr['a'] = 'a';
console.log(arr); //[2.1: 2.1, a: 'a']
console.log(arr.length); //0

length是可寫的

const arr = [1,2,3,4,5];
arr.length = 2;
console.log(arr); //[1,2]

4. in

in關(guān)鍵用來判斷數(shù)組中存在某個鍵,可應(yīng)用于數(shù)組和對象

const arr = ['a','b'];
1 in arr; // true
2 in arr; //fasle

5. for…in

  • for…in用來遍歷數(shù)組和對象
  • 遍歷數(shù)組的時候不僅能遍歷整數(shù)的key,還能遍歷所有非整數(shù)的key
  • Object.keys()也能獲取到數(shù)組的非整數(shù)的key
const arr = [1,2];
arr['a'] = 3;
arr[4.5] = 4;
for(key in arr){
 console.log(key);
};
// 0
// 1
// a
/  4.5
Object.keys(arr); // ['0', '1', 'a', '4.5']

6.數(shù)組的空位

  • 即兩個逗號之間沒有任何值會產(chǎn)生空值(empty)
  • 使用delete會產(chǎn)生empty
  • 數(shù)組的lengt包含empty
var arr = [1,5,,8];
console.log(arr); //[1, 5, empty, 8]
//使用delete也會產(chǎn)生空值
delete arr [0];
console.log(arr); //[empty, 5, empty, 8]
console.log(arr.length); //4
  • 空值和undefined有所區(qū)別,undefined參與for…in和forEach的遍歷,empty不參與遍歷
  • Object.keys能獲取到undefined的key獲取不到empty的key
  • 使用length能遍歷出empty
    const arr1 = new Array(10); //[empty × 10]
    for (key in arr1) {
      console.log(arr1);
    }; //無輸出,沒有進(jìn)行遍歷
    arr1.forEach((v) => {
      console.log(v)
    }); //無輸出,沒有進(jìn)行遍歷
    console.log(Object.keys(arr1)); //[]
    const arr2 = [undefined, undefined, undefined]; //[empty × 10]
    for (key in arr2) {
      console.log(key);
    };
    //0
    //1
    //2
    arr2.forEach((value, index) => {
      console.log(value, index)
    });
    // undefined,0
    // undefined,1
    // undefinef,2
    console.log(Object.keys(arr2)); //[3]
    // 使用for循環(huán)遍歷empty
    for(let i = 0;i<arr1.length;i++){
       console.log(arr1[1])
    };
    //undefined × 10

7.類數(shù)組(偽數(shù)組)

類數(shù)組的定義:鍵名都是正整數(shù)或零,擁有l(wèi)ength屬性

const arrayLike = { 
  0:'a', 
  1:'b', 
  2:'c', 
  length:3 
  };
arrayLike[3] = 'd';
console.log(arrayLike[0]); //a
console.log(arrayLike.length); //3

上面的代碼為arrayLike添加了一個數(shù)字鍵,但length沒有改變,這就說明arrayLike不是數(shù)組

典型的類數(shù)組有函數(shù)的arguments、大多數(shù)的元素DOM集合、字符串

function foo(){
  console.log(arguments);
};
foo('tom','jack');
// {0:'tom', 1:'jack', length:2, callee:...}
console.log(document.getElementsByClassName('a'));
//{"0": ...,"1": ...,"2":..., "length":3}
const str = 'apple';
console.log(str.length); //5
consoel.log(str[2]); //p

將偽數(shù)組轉(zhuǎn)為數(shù)組

  • 使用Array.prototype.slice
  • 使用拓展運(yùn)算符
function foo(){
  const arr = Array.prototype.slice.call(arguments);
}
function foo(){
  const arr = [...arguments]
}
function foo(...args){
}

總結(jié)

  • 數(shù)組的empty和undefined有所區(qū)別,empty不會被for…in和forEache以及Object.keys運(yùn)算,但計算length的時候會包含empty,因此使用length循環(huán)帶有empty的數(shù)組時要格外小心
  • 類數(shù)組也叫偽數(shù)組,是指對象的屬性為正整數(shù)或者零而且具有l(wèi)ength屬性的對象
  • 使用Array.prototype.slice.call()或者拓展運(yùn)算符將類數(shù)組轉(zhuǎn)換為數(shù)組,類數(shù)組可以使用call函數(shù)借用數(shù)組的方法

到此這篇關(guān)于JavaScript數(shù)組操作總結(jié)的文章就介紹到這了,更多相關(guān)JS數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Three.js基礎(chǔ)學(xué)習(xí)教程

    Three.js基礎(chǔ)學(xué)習(xí)教程

    這篇文章主要為大家詳細(xì)介紹了Three.js基礎(chǔ)學(xué)習(xí)教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • js簡單實(shí)現(xiàn)刪除記錄時的提示效果

    js簡單實(shí)現(xiàn)刪除記錄時的提示效果

    刪除記錄時的提示效果,挺人性化的,實(shí)現(xiàn)的方法有很多,在本文為大家介紹下使用js是如何實(shí)現(xiàn)的
    2013-12-12
  • 微信小程序?qū)崿F(xiàn)傳遞多個參數(shù)與事件處理

    微信小程序?qū)崿F(xiàn)傳遞多個參數(shù)與事件處理

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)傳遞多個參數(shù)與事件處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Bootstrap框架安裝使用詳解

    Bootstrap框架安裝使用詳解

    這篇文章主要為大家詳細(xì)介紹了Bootstrap框架的安裝使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 定單管理上 JS表格排序

    定單管理上 JS表格排序

    定單管理上 JS表格排序...
    2006-10-10
  • ES6數(shù)組復(fù)制和填充方法copyWithin()、fill()的具體使用

    ES6數(shù)組復(fù)制和填充方法copyWithin()、fill()的具體使用

    本文主要介紹了ES6數(shù)組復(fù)制和填充方法copyWithin()、fill()的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • JavaScript實(shí)現(xiàn)tab欄切換的幾種常用方法

    JavaScript實(shí)現(xiàn)tab欄切換的幾種常用方法

    這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)tab欄切換的幾種常用方法,在Web開發(fā)中Tab切換是一個常見的功能,它允許用戶在不同的頁面部分之間進(jìn)行切換,需要的朋友可以參考下
    2023-12-12
  • JavaScript數(shù)組的使用詳解

    JavaScript數(shù)組的使用詳解

    這篇文章主要介紹了JavaScript數(shù)組的使用方法,數(shù)組(Array)是有序的元素序列。若將有限個類型相同的變量的集合命名,那么這個名稱為數(shù)組名,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 微信小程序生成海報分享朋友圈的實(shí)現(xiàn)方法

    微信小程序生成海報分享朋友圈的實(shí)現(xiàn)方法

    利用微信強(qiáng)大的社交能力通過小程序達(dá)到裂變的目的,拉取新用戶。下面小編給大家?guī)砹宋⑿判〕绦蛏珊蠓窒砼笥讶Φ膶?shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • Babylon使用麥克風(fēng)并處理常見問題解決

    Babylon使用麥克風(fēng)并處理常見問題解決

    這篇文章主要為大家介紹了Babylon使用麥克風(fēng)并處理常見問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評論