最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip

2023-07-12 11:35 作者:卐小智卍  | 我要投稿

數(shù)組

數(shù)組是用來批量存儲(chǔ)數(shù)據(jù)的一種對(duì)象,類似于數(shù)學(xué)中的集合

一、數(shù)組的定義

  1. 構(gòu)造函數(shù)
 var arr = new 構(gòu)造函數(shù)();
  1. 引用類型的內(nèi)存存儲(chǔ)機(jī)制與內(nèi)置類型不同:
  2. 棧與堆:都是內(nèi)存中的空間
  3. 內(nèi)置類型存儲(chǔ)數(shù)據(jù):內(nèi)置類型只有一塊棧空間,該空間存的就是數(shù)值本身
 var a = 123;
  1. 引用類型存儲(chǔ)的方式:引用類型有兩塊空間
  2. 一塊??臻g,存的是new出來堆空間的地址
  3. 一塊堆空間,堆空間存的是真正的數(shù)據(jù)
  4. new是一個(gè)關(guān)鍵字,作用為在堆內(nèi)存開辟空間
  5. Array是構(gòu)造函數(shù),可以理解為是一個(gè)類型的模板
  6. new Array(1,2,3,4,5):按照Array類型的模板在堆內(nèi)存開辟了一個(gè)Array的空間,并且存儲(chǔ)的元素分別為1,2,3,4,5
  7. 注意事項(xiàng):new和構(gòu)造函數(shù)必須一起使用,含義為創(chuàng)造了一個(gè)該類型的對(duì)象
 var arr = new Array(1,2,3,4,5);
 console.log(arr);
  1. 字面量
  2. 字面意思將new Array() 簡(jiǎn)化為[ ]
 var arr = [1,2,3,4,5];
 console.log(arr);
 var arr = [];

二、數(shù)組的使用

數(shù)組元素的訪問:數(shù)組名[下標(biāo)]

數(shù)組名:就是數(shù)組的名字

下標(biāo):數(shù)組元素訪問時(shí)的索引

  1. 從0開始
  2. 連續(xù)的自然數(shù)
  3. 下標(biāo)可以用變量
  4. 數(shù)組在訪問時(shí),千萬(wàn)不要越界,下標(biāo)取值范圍是:0~數(shù)組長(zhǎng)度-1

三、數(shù)組的遍歷

對(duì)所有的元素進(jìn)行相同的操作(依賴于循環(huán))

數(shù)組對(duì)象.length:返回?cái)?shù)組的長(zhǎng)度(元素的個(gè)數(shù))

var arr = [11,22,33,44,5,5,9,8,4,3];

for(var i=0; i<arr.length; i++){
    console.log(arr[i]);
}

數(shù)組的逆序運(yùn)算寫法:

需要循環(huán)n/2取整次,并用無(wú)賦值容器將元素交換

var arr = [5,6,7,4,8,3,9,2,0,1];
var len = arr.length;
var t;
for(var i=0; i<parseInt(len/2); i++){
    t = arr[i];
    arr[i] = arr[len-i-1];
    arr[len-i-1] = t;
}

console.log(arr);

四、數(shù)組的API:API--->應(yīng)用程序接口--->系統(tǒng)提供的函數(shù),打點(diǎn)訪問

[內(nèi)容表示可以省略不寫]

如何學(xué)習(xí)API

  1. 函數(shù)的功能
  2. 函數(shù)的參數(shù)
  3. 函數(shù)的返回值
  4. 抄案例 無(wú)恥求demo

push

功能:尾插

參數(shù):push(參數(shù)1,[參數(shù)2,參數(shù)3...])

返回值:數(shù)值,表示數(shù)組的新長(zhǎng)度

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var len = fruits.push("Kiwi","1","hello");
console.log(fruits);
console.log(len);

pop

功能:尾刪

參數(shù):無(wú)

返回值:被刪除的元素

var arr = ["t",7,"r",8,"e"];
var x = arr.pop();
console.log(arr);
console.log(x);       
x = arr.pop();
console.log(arr);
console.log(x);

unshift

功能:頭插

參數(shù):unshift(參數(shù)1,/參數(shù)2,參數(shù)3.../)

返回值:數(shù)值,表示數(shù)組的新長(zhǎng)度

var arr = [1,2,3,4,5];
var len = arr.unshift(666,777);
console.log(arr);
console.log(len);

shift

功能:頭刪

參數(shù):無(wú)

返回值:被刪除的元素

var arr = ["t",7,"r",8,"e"];
var x = arr.shift();
console.log(arr);
console.log(x);

reverse

功能:逆序,并且改變?cè)亟M本身

參數(shù):無(wú)

返回值:返回逆序的數(shù)組

var arr = [5,7,8,4,8];
arr.reverse();
//這樣就直接實(shí)現(xiàn)了算數(shù)運(yùn)算逆序,更簡(jiǎn)便。
console.log(arr);

splice

功能:指定位置刪除或插入

參數(shù):splice(起始位置,偏移量,[被插入的參數(shù)1,參數(shù)2...])

返回值:被刪除的數(shù)組區(qū)間

var arr = [5,6,7,4,8,3,9];
arr.splice(1,3);
var arr1 = arr.splice(1,3);
arr.splice(1,3,99,111);
arr.splice(2,1);
console.log(arr);
console.log(arr1);

slice

功能:截取數(shù)組區(qū)間,不會(huì)改變?cè)獢?shù)組

參數(shù):slice(起始位置,結(jié)束位置) 左閉右開

返回值:被截取的元素

var arr = [6,5,7,4,8,3];
var arr1 = arr.slice(1,3);
console.log(arr);
console.log(arr1);

concat

功能:數(shù)組的拼接,不會(huì)改變?cè)紨?shù)組

參數(shù):concat(新數(shù)組)

返回值:拼接的數(shù)組

var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = arr1.concat(arr2);
console.log(arr3);

join

功能:將數(shù)組轉(zhuǎn)為字符串

參數(shù):join([分隔符]),默認(rèn)不寫時(shí)用逗號(hào)分割

返回值:字符串

var arr = [2,3,4,5,6,7,8,9];
var str = arr.join("laowang");
console.log(str);

length:數(shù)組的長(zhǎng)度

indexOf

功能:查找元素是否在數(shù)組中出現(xiàn)(字符串:查找字符串第一次出現(xiàn)的位置)

參數(shù):indexOf(目標(biāo)元素)

返回值:找到返回下標(biāo),找不到返回-1

indexOf("abc")        查找字符串第一次出現(xiàn)的位置
var str = "helloworld";
console.log(str.indexOf("llo"));

lastIndexOf

功能:查找元素是否在數(shù)組中出現(xiàn)(字符串:查找字符串最后一次出現(xiàn)的位置)

參數(shù):lastIndexOf(目標(biāo)元素)

返回值:找到返回下標(biāo),找不到返回-1

lastIndexOf("abc")    查找字符串最后一次出現(xiàn)的位置  如果沒找到  返回-1
var str = "helloworld";
console.log(str.lastIndexOf("o"));

五、多維數(shù)組:擁有多個(gè)下標(biāo)的數(shù)組元素

JS本身是沒有多維數(shù)組的,所有的多維數(shù)組都是通過一維數(shù)組的嵌套實(shí)現(xiàn)的

案例:將多維數(shù)組內(nèi)容打到瀏覽器白板上

var arr = [
    [1,2],//arr[0]
    [3,4,5,6],//arr[1][0]
    [7,8,9]//arr[2]
];

// console.log(arr[1][0]);獲取下標(biāo)1里面數(shù)組的下標(biāo)0的數(shù)值

for(var i=0; i<arr.length; i++){
    // console.log(arr[i]);
    for(var j=0; j<arr[i].length; j++){
        document.write(arr[i][j] + " ");
    }
    document.write("<br>");
}

六、冒泡排序:將數(shù)值類型數(shù)組,按照由小到大,或者由大到小的順序排列

案例:

核心思想:兩兩比較

外層循環(huán):比較多少趟:N-1趟

內(nèi)層循環(huán):每趟比較多少次:N-1-i

第0趟為例 交換9次
/*
    5,6,7,4,8,3,9,2,0,1
    5,6,7,4,8,3,9,2,0,1
    5,6,4,7,8,3,9,2,0,1
    5,6,4,7,8,3,9,2,0,1
    5,6,4,7,3,8,9,2,0,1
    5,6,4,7,3,8,9,2,0,1
    5,6,4,7,3,8,2,9,0,1
    5,6,4,7,3,8,2,0,9,1
    5,6,4,7,3,8,2,0,1,                       

    第1趟    交換8次
    5,6,4,7,3,8,2,0,1
*/

var arr = [6,5,7,4,8,3,9,2,0,1];

var t;

for(var i=0; i<arr.length-1; i++){
    for(var j=0; j<arr.length-i-1; j++){
        if(arr[j]<arr[j+1]){
            t = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = t;
        }
    }
}

console.log(arr);

用indexOf去重

var arr = [5,6,5,5,6,6,1,7,7,8,9,4,8,9,3,0];
var arr1 = [];

for(var i=0; i<arr.length; i++){
    if(arr1.indexOf(arr[i]) == -1){
        arr1.push(arr[i]);
    }
}

console.log(arr1);

七、數(shù)組相關(guān)迭代

迭代函數(shù)的功能:實(shí)現(xiàn)了循環(huán),用戶只需要自己寫功能

forEach

功能:遍歷數(shù)組所有元素,并且實(shí)現(xiàn)回調(diào)函數(shù)的功能

參數(shù):forEach(回調(diào)函數(shù))

回調(diào)函數(shù)(數(shù)組元素?cái)?shù)值,[數(shù)組下標(biāo),數(shù)組名]){}

返回值:無(wú)

let arr = [6,5,4,7,3,8];

function fun(x,index,a){
    console.log(a[index]);
    x = x + 10;
    a[index] = x + 10;
    a[index] *= a[index];
}
arr.forEach(fun);
console.log(arr);

map

功能:拼接,遍歷數(shù)組所有元素,并且實(shí)現(xiàn)回調(diào)函數(shù)的功能

參數(shù):map(回調(diào)函數(shù))

回調(diào)函數(shù)(數(shù)組元素?cái)?shù)值,[數(shù)組下標(biāo),數(shù)組名]){}

返回值:回調(diào)函數(shù)return的值,拼接的數(shù)組

function fun(x){
    if(x%2){
        return "heihei";
    }else{
        return "yingyingying";
    }
}
let arr = [5,4,6,7,3,8];
let arr1 = arr.map(fun);
console.log(arr);
console.log(arr1);

filter

功能:過濾,根據(jù)回調(diào)函數(shù)返回的布爾值篩選元素,遍歷數(shù)組所有元素,并且實(shí)現(xiàn)回調(diào)函數(shù)的功能

參數(shù):filter(回調(diào)函數(shù))

回調(diào)函數(shù)(數(shù)組元素?cái)?shù)值,[數(shù)組下標(biāo),數(shù)組名]){}

返回值:回調(diào)函數(shù)return的布爾值,篩選后拼接的數(shù)組

let arr = [5,4,6,7,3,8];
function fun(x){
    if(x%2){
        return true;
    }else{
        return false;
    }
}
let arr1 = arr.filter(fun);
console.log(arr1);

面試題:map和forEach的異同

forEach沒有返回值

map返回的是回調(diào)函數(shù)return的值,拼接的數(shù)組

千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
长垣县| 无锡市| 石景山区| 宜宾市| 武定县| 页游| 仲巴县| 鹿邑县| 峨眉山市| 宜黄县| 东至县| 宁强县| 涡阳县| 牙克石市| 孟连| 铜梁县| 武邑县| 苍山县| 城步| 宝山区| 普宁市| 奇台县| 陵川县| 白玉县| 西昌市| 勃利县| 车致| 扶余县| 宜宾县| 宾川县| 尚志市| 张家港市| 建宁县| 安溪县| 长兴县| 万安县| 惠东县| 原平市| 峨眉山市| 安平县| 延庆县|