es6的一些用法

記錄es6用法


數(shù)組中的某項(xiàng)替換

const str3 = str4.map( item => 1 && {...item, num: '一二三四五六七'[item.num -1]})

concat:用于連接兩個(gè)或者多個(gè)數(shù)組

concat是不會(huì)改變?cè)瓉?lái)的數(shù)組的

var a=[1,4];var b=[2,4];var c=[];
console.log(c.concat(a,b));  // [1,4,2,4]
console.log(a,b);          // [1,4] [2,4]

reverse:用于將數(shù)組元素顛倒順序

無(wú)參數(shù),無(wú)視參數(shù),!!!!!操作的是數(shù)組本身,會(huì)改變?cè)瓟?shù)組

var a=[1,2,3,5];
console.log(a.reverse());  // [5,3,2,1]

sort(fn):將數(shù)組元素排序: sort() 是會(huì)改變?cè)瓟?shù)組的!

參數(shù):fn(a,b):比較函數(shù) ;無(wú)參數(shù)的時(shí)候按照字母表升順排序;該方法操作的是數(shù)組元素本身

var array=[15,5,10,2,0];
array.sort((a,b)=>{return a-b});
console.log(array);  // [0,2,5,10,15]

let obj_list=[{
    name:'li',
    value:99},{
    name:'chen',
    value:100},{
    name:'huang',
    value:1}]
console.log(obj_list.sort((a,b)=>{return a.value-b.value}))// 排序結(jié)果:'huang','li','chen'

splice:用于截取數(shù)據(jù),插入數(shù)據(jù),刪除數(shù)據(jù)。!!操作的是數(shù)據(jù)本身

參數(shù)有三:1.開(kāi)始位置 2.截?cái)嗟膫€(gè)數(shù) 3.插入的數(shù)據(jù)

//一.當(dāng)只有1個(gè)參數(shù)的時(shí)候:從開(kāi)始位置截取剩下的所有數(shù)據(jù)。slice就像只是我們想象中的裁剪,而splice則是現(xiàn)實(shí)中的,從splice中醒來(lái),已是物是人非。splice是直接對(duì)數(shù)組進(jìn)行操作的。

var array=[15,5,10,2,0];
console.log(array.slice(1));  // [5,10,2,0]
console.log(array.splice(1)); // [5,10,2,0]

//二.若有兩個(gè)參數(shù),則第一個(gè)是刪除位置的下標(biāo),第二個(gè)是從包括下標(biāo)在內(nèi)數(shù)的刪除的數(shù)量,結(jié)果返回刪除的元素,剩余的就是被手術(shù)刀裁剪過(guò)的數(shù)組了。

var array=[15,5,10,2,0];
console.log(array.splice(0,2)); // [15,5]
console.log(array);            // [10,2,0]

//三.替換大法瞞天過(guò)海,這里是三個(gè)參數(shù)的,這里返回的值依舊是我們替換掉的那個(gè)值,仿佛是要給一個(gè)機(jī)會(huì)讓我們?nèi)ケ4嫠?,不讓我們忘卻歷史啊

var array=[15,5,10,2,0];
console.log(array.splice(0,1,4));  // [15]
console.log(array);                // [4,5,10,2,0]

//然后就是添加的功能了,依舊是三個(gè)參數(shù),不過(guò)是把數(shù)量改成0

var array=[15,5,10,2,0];
console.log(array.splice(0,0,4));  // []
console.log(array);                // [4,15,5,10,2,0]

//返回的依然是 所被替換的數(shù)值 ,因?yàn)闆](méi)有,此處自然為 []
//若是直接擴(kuò)展一個(gè)對(duì)象函數(shù)

Array.prototype.insert = function(index, item){
    this.splice(index, 0, item);
}

map:重頭戲。

我們能夠在Redux中的reducer看到大量的map函數(shù),因?yàn)閞edux追求這種函數(shù)式極簡(jiǎn)的酷炫的風(fēng)格??梢哉f(shuō)在react中map的出現(xiàn)率非常高,側(cè)面反映出其非常好用!
map是指映射,和英文中的地圖不同。
map不會(huì)修改原來(lái)的數(shù)組。

//一.回調(diào)函數(shù)中0或者1個(gè)參數(shù)

var a=[1,32,442,234];
b=a.map((item)=>{return item+1;}); 
console.log(a,b);    // [1,32,442,234]  [2,33,443,235]

//如果我們什么都不做,則每一項(xiàng)都會(huì)返回 undefined
var a=[1,32,442,234];
c=a.map(()=>{}); // 打印 4個(gè) undefined
console.log(c);

//二.回調(diào)函數(shù)中第二個(gè)參數(shù) index 的作用,在react中我們主要將它賦值給key
d=a.map((item,i)=>{
    console.log(i);  // 0,1,2,3
})

//三.回調(diào)函數(shù)中第三個(gè)參數(shù),包含該元素的數(shù)組對(duì)象
e=a.map((item,i,array)=>{
    console.log(array);  // 最后會(huì)打印四遍  [1,34,442,234]
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容