成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

js數(shù)組操作方法小結(jié)

April / 1158人閱讀

摘要:操作方法創(chuàng)建數(shù)組類(lèi)數(shù)組將類(lèi)數(shù)組轉(zhuǎn)換真正的數(shù)組修改數(shù)組合并數(shù)組,返回新數(shù)組,原數(shù)組不變數(shù)組轉(zhuǎn)化為字符串以默認(rèn)為逗號(hào)拼接為字符串。

Array操作方法 創(chuàng)建數(shù)組
var arr=[]
var arr = new Array()
var arr1 = ["1", "2", "3"]
var arr2 = ["a", "b", "c"]
var arrLike = [{
    name: "123",
    age: "18"
}, {
    name: "abc",
    age: "12"
}]  //類(lèi)數(shù)組
將類(lèi)數(shù)組轉(zhuǎn)換真正的數(shù)組Array.from(array)

eg:

obj = {"1": "value is 1", length: 2}
a = Array.from(obj)  //[undefined, "value is 1"]
修改數(shù)組

合并數(shù)組,返回新數(shù)組,原數(shù)組不變

Array.prototype.concat(arr1, arr2)  //["1", "2", "3", "a", "b", "c"]
arr1.concat(arr2) //["1", "2", "3", "a", "b", "c"]

數(shù)組轉(zhuǎn)化為字符串

Array.prototype.join(separator)  //以separator(默認(rèn)為逗號(hào))拼接為字符串。
Array.prototype.toString()   //把數(shù)組轉(zhuǎn)換為字符串, 數(shù)組中的元素之間用逗號(hào)分隔。

eg:

arr1.join() //"1,2,3"
arr1.join("") //"123"
arr1.join("/") //"1/2/3"
arr1.toString() //"1,2,3"
填充
Array.prototype.fill(value,start,end)
//value 為填充值
//start 為填充數(shù)組元素起點(diǎn)坐標(biāo)
//end 為填充數(shù)組元素終點(diǎn)坐標(biāo)

eg:

arr1.fill(0,1,2) // ["1", 0, "3"]
判斷
Array.isArray()
Array.isArray(arr1) //true
篩選
Array.prototype.filter()
Array.prototype.map()

eg:

var words = [
    {
        id: "1",
        name: "123"
    },
    {
        id: "2",
        name: "abc"
    }
]

words.filter(d => d.id === "1") //[{id: "1" , name: "123"}] 返回結(jié)果為true的值
arr1.map(x => x * 2)  // [2,4,6] 返回所有項(xiàng)
排序
Array.prototype.reverse()   //位置顛倒
Array.prototype.sort()

eg:

arr1.reverse() //["3", 2, "1"]
arr1.sort()  //["1", "2", "3"]
遞歸
Array.prototype.reduce()

eg:

const reducer = (accumulation,currentValue)=>{
    accumulation + currentValue
}
arr1.reduce(reducer)       // 1+2+3=6
arr1.reduce(reducer,4)     //4+1+2+3=10
查找
Array.prototype.some(callback)    //執(zhí)行callback函數(shù),直到callback返回true

var even =  function(element){
    return element % 2 === 0
}

arr1.some(even)  //true
Array.prototype.every(callback) //數(shù)組的所有元素是否都通過(guò)callback函數(shù)

function even(currentValue){
    return currentValue < 5
}

arr1.every(even)
Array.prototype.find(callback) //在數(shù)組中返回符合callback第一個(gè)元素的值

function even(value){
    return even % 2 === 0
}

arr1.find(even) // 2
Array.prototype.findIndex(callback)  //返回?cái)?shù)組中滿足callback的第一個(gè)元素的索引。否則返回-1

function even(value){
    return value % 2 === 0
}

arr1.findIndex(even)   // 1
Array.prototype.includes(searchElement) //是否包含seachElement

arr1.includes(2)  //true

arr1.includes(0)  //false
增刪

pop()

Array.prototype.pop()  //刪除數(shù)組的最后一個(gè)元素,并返回改元素的值

arr1.pop() //  3  arr1=[1,2]

push()

Array.prototype.push()  //增加元素到數(shù)組末尾,返回增加的元素

arr1.push(4) // 4  ?arr1=[1, 2, 3, 4]

shift()

Array.prototype.shift()  //刪除數(shù)組第一個(gè)元素,返回這個(gè)元素值

arr1.shift()  // 1   arr1=[2,3]

unshift()

Array.prototype.unshift()   //增加元素到數(shù)組開(kāi)頭 ,返回?cái)?shù)組長(zhǎng)度  

arr1.unshift(0) //4  arr1=[0,1,2,3]

slice()

Array.prototype.slice(start,end) //返回[start,end]淺拷貝到一個(gè)新數(shù)組,原數(shù)組不會(huì)被修改

arr1.slice(0,2)  //[1,2]  arr1=[1,2,3]

splice()

Array.prototype.splice()  //通過(guò)刪除現(xiàn)有元素或添加新元素來(lái)更改一個(gè)數(shù)組的內(nèi)容,原數(shù)組會(huì)被修改

Array.prototype.slice(replace-index,replace-num,replace-value)

//replace-num = 0 => inserts
arr1.splice(1,0,0)  //arr1=[1,0,2,3]

//replace-num !== 0 => replace
arr1.splice(1,1,4)  //返回被替換的元素 =>2  arr1=[1,4,3]
循環(huán)遍歷

map()

Array.prototype.map(callback)

arr1.map(val=>val*2)  // [2, 4, 6]

forEach()

Array.prototype.forEach(callback)

arr1.forEach(elem =>{
    console.log(elem)
})

// 1
// 2
// 3

entries()

Array.prototype.entries()   //返回一個(gè)新的Array Iterator對(duì)象,該對(duì)象包含數(shù)組中每個(gè)索引的鍵/值對(duì)

arr1 = ["a", "b", "c"]

for( let [index,elem] of (arr1).entries()){
    console.log(index,elem)
}

// 0 "a"
// 1 "b"
// 2 "c"

keys()

Array.prototype.keys()  //返回一個(gè)新的Array迭代器,它包含數(shù)組中每個(gè)索引的鍵

for(let index of(arr1).keys()){
    console.log(index)
}

// 0
// 1
// 2

values()

Array.prototype.values()  //返回一個(gè)新的Array迭代對(duì)象,包含數(shù)組每個(gè)索引值

for(let elem of(arr1).values()){
    console.log(elem)
}

// a
// b
// c

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/100613.html

相關(guān)文章

  • JS數(shù)組去重方法小結(jié)

    摘要:數(shù)組去重看了網(wǎng)上很多數(shù)組去重方法,用的比較常見(jiàn)的大概就幾種,今天想自己來(lái)做一個(gè)總結(jié)。還有就是方法返回的數(shù)組也是排序后的數(shù)組,某些情況下可能不符合要求。 JS數(shù)組去重 看了網(wǎng)上很多數(shù)組去重方法,用的比較常見(jiàn)的大概就幾種,今天想自己來(lái)做一個(gè)總結(jié)。部分內(nèi)容參考該博客 1 . 在原數(shù)組上操作(基本方法) 思路:利用循環(huán)嵌套,判斷數(shù)組中每個(gè)元素與其后面的元素是否相等,如果相等,就使用spli...

    PascalXie 評(píng)論0 收藏0
  • 【讀書(shū)筆記】《高性能JavaScript》

    摘要:性能訪問(wèn)字面量和局部變量的速度是最快的,訪問(wèn)數(shù)組和對(duì)象成員相對(duì)較慢變量標(biāo)識(shí)符解析過(guò)程搜索執(zhí)行環(huán)境的作用域鏈,查找同名標(biāo)識(shí)符。建議將全局變量存儲(chǔ)到局部變量,加快讀寫(xiě)速度。優(yōu)化建議將常用的跨作用域變量存儲(chǔ)到局部變量,然后直接訪問(wèn)局部變量。 缺陷 這本書(shū)是2010年出版的,這本書(shū)談性能是有時(shí)效性的,現(xiàn)在馬上就2018年了,這幾年前端發(fā)展的速度是飛快的,書(shū)里面還有一些內(nèi)容考慮IE6、7、8的東...

    chengjianhua 評(píng)論0 收藏0
  • 高性能JavaScript(文檔)

    摘要:最近在全力整理高性能的文檔,并重新學(xué)習(xí)一遍,放在這里方便大家查看并找到自己需要的知識(shí)點(diǎn)。 最近在全力整理《高性能JavaScript》的文檔,并重新學(xué)習(xí)一遍,放在這里方便大家查看并找到自己需要的知識(shí)點(diǎn)。 前端開(kāi)發(fā)文檔 高性能JavaScript 第1章:加載和執(zhí)行 腳本位置 阻止腳本 無(wú)阻塞的腳本 延遲的腳本 動(dòng)態(tài)腳本元素 XMLHTTPRequest腳本注入 推薦的無(wú)阻塞模式...

    RayKr 評(píng)論0 收藏0
  • 關(guān)于promise的小結(jié)

    摘要:則是把類(lèi)似的異步處理對(duì)象和處理規(guī)則進(jìn)行規(guī)范化,并按照采用統(tǒng)一的接口來(lái)編寫(xiě),而采取規(guī)定方法之外的寫(xiě)法都會(huì)出錯(cuò)。這個(gè)對(duì)象有一個(gè)方法,指定回調(diào)函數(shù),用于在異步操作執(zhí)行完后執(zhí)行回調(diào)函數(shù)處理。到目前為止,已經(jīng)學(xué)習(xí)了創(chuàng)建對(duì)象和用,方法來(lái)注冊(cè)回調(diào)函數(shù)。 Promise 本文從js的異步處理出發(fā),引入Promise的概念,并且介紹Promise對(duì)象以及其API方法。 js里的異步處理 可以參考這篇文章...

    Tony_Zby 評(píng)論0 收藏0
  • 面試小結(jié)(二)

    摘要:的用法,申明構(gòu)造函數(shù),返回。構(gòu)造函數(shù)可以調(diào)用來(lái)獲取下一個(gè)值,可以構(gòu)造類(lèi)似于隨機(jī)數(shù)生成器。在構(gòu)造器函數(shù)中,可以暫停然后返回當(dāng)前表達(dá)式的值??偨Y(jié)是為了更好的消滅這些不知道,希望對(duì)大家也有所幫助。 1、function*的用法; function*,申明構(gòu)造函數(shù),返回{value:v,done:true_or_false}。構(gòu)造函數(shù)可以調(diào)用next來(lái)獲取下一個(gè)值,可以構(gòu)造類(lèi)似于隨機(jī)數(shù)生成器。...

    lanffy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<