99久久精品国产片-99久久精品国产免费-99久久精品国产麻豆-99久久精品国产国产毛片-99久久精品国产高清一区二区-99久久精品费精品国产一区二区

5 個(gè) JS 數(shù)組技巧可提高你的開(kāi)發(fā)技能

2020-7-1    seo達(dá)人

1. 隨機(jī)排列

在開(kāi)發(fā)者,有時(shí)候我們需要對(duì)數(shù)組的順序進(jìn)行重新的洗牌。 在 JS 中并沒(méi)有提供數(shù)組隨機(jī)排序的方法,這里提供一個(gè)隨機(jī)排序的方法:


function shuffle(arr) {

 var i, j, temp;

 for (i = arr.length - 1; i > 0; i--) {

   j = Math.floor(Math.random() * (i + 1));

   temp = arr[i];

   arr[i] = arr[j];

   arr[j] = temp;

 }

 return arr;

}

2. 唯一值

在開(kāi)發(fā)者,我們經(jīng)常需要過(guò)濾重復(fù)的值,這里提供幾種方式來(lái)過(guò)濾數(shù)組的重復(fù)值。


使用 Set 對(duì)象

使用 Set() 函數(shù),此函數(shù)可與單個(gè)值數(shù)組一起使用。對(duì)于數(shù)組中嵌套的對(duì)象值而言,不是一個(gè)好的選擇。


const numArray = [1,2,3,4,2,3,4,5,1,1,2,3,3,4,5,6,7,8,2,4,6];


// 使用 Array.from 方法

Array.from(new Set(numArray));


// 使用展開(kāi)方式

[...new Set(numArray)]

使用 Array.filter

使用 filter 方法,我們可以對(duì)元素是對(duì)象的進(jìn)行過(guò)濾。


const data = [

 {id: 1, name: 'Lemon'},

 {id: 2, name: 'Mint'},

 {id: 3, name: 'Mango'},

 {id: 4, name: 'Apple'},

 {id: 5, name: 'Lemon'},

 {id: 6, name: 'Mint'},

 {id: 7, name: 'Mango'},

 {id: 8, name: 'Apple'},

]


function findUnique(data) {

 return data.filter((value, index, array) => {

   if (array.findIndex(item => item.name === value.name) === index) {

     return value;

   }

 })

}

3. 使用 loadsh 的 lodash 方法

import {uniqBy} from 'lodash'


const data = [

 {id: 1, name: 'Lemon'},

 {id: 2, name: 'Mint'},

 {id: 3, name: 'Mango'},

 {id: 4, name: 'Apple'},

 {id: 5, name: 'Lemon'},

 {id: 6, name: 'Mint'},

 {id: 7, name: 'Mango'},

 {id: 8, name: 'Apple'},

]


function findUnique(data) {

 return uniqBy(data, e => {

       return e.name

   })

}

3. 按屬性對(duì) 對(duì)象數(shù)組 進(jìn)行排序

我們知道 JS 數(shù)組中的 sort 方法是按字典順序進(jìn)行排序的,所以對(duì)于字符串類, 該方法是可以很好的正常工作,但對(duì)于數(shù)據(jù)元素是對(duì)象類型,就不太好使了,這里我們需要自定義一個(gè)排序方法。


在比較函數(shù)中,我們將根據(jù)以下條件返回值:


小于0:A 在 B 之前

大于0 :B 在 A 之前

等于0 :A 和 B 彼此保持不變

const data = [

 {id: 1, name: 'Lemon', type: 'fruit'},

 {id: 2, name: 'Mint', type: 'vegetable'},

 {id: 3, name: 'Mango', type: 'grain'},

 {id: 4, name: 'Apple', type: 'fruit'},

 {id: 5, name: 'Lemon', type: 'vegetable'},

 {id: 6, name: 'Mint', type: 'fruit'},

 {id: 7, name: 'Mango', type: 'fruit'},

 {id: 8, name: 'Apple', type: 'grain'},

]


function compare(a, b) {

 // Use toLowerCase() to ignore character casing

 const typeA = a.type.toLowerCase();

 const typeB = b.type.toLowerCase();


 let comparison = 0;

 if (typeA > typeB) {

   comparison = 1;

 } else if (typeA < typeB) {

   comparison = -1;

 }

 return comparison;

}


data.sort(compare)

4. 把數(shù)組轉(zhuǎn)成以指定符號(hào)分隔的字符串

JS 中有個(gè)方法可以做到這一點(diǎn),就是使用數(shù)組中的 .join() 方法,我們可以傳入指定的符號(hào)來(lái)做數(shù)組進(jìn)行分隔。


const data = ['Mango', 'Apple', 'Banana', 'Peach']


data.join(',');

// return "Mango,Apple,Banana,Peach"

5. 從數(shù)組中選擇一個(gè)元素

對(duì)于此任務(wù),我們有多種方式,一種是使用 forEach 組合 if-else 的方式 ,另一種可以使用filter 方法,但是使用forEach 和filter的缺點(diǎn)是:


在forEach中,我們要額外的遍歷其它不需要元素,并且還要使用 if 語(yǔ)句來(lái)提取所需的值。

在filter 方法中,我們有一個(gè)簡(jiǎn)單的比較操作,但是它將返回的是一個(gè)數(shù)組,而是我們想要是根據(jù)給定條件從數(shù)組中獲得單個(gè)對(duì)象。

為了解決這個(gè)問(wèn)題,我們可以使用 find函數(shù)從數(shù)組中找到確切的元素并返回該對(duì)象,這里我們不需要使用if-else語(yǔ)句來(lái)檢查元素是否滿足條件。


const data = [

 {id: 1, name: 'Lemon'},

 {id: 2, name: 'Mint'},

 {id: 3, name: 'Mango'},

 {id: 4, name: 'Apple'}

]


const value = data.find(item => item.name === 'Apple')

// value = {id: 4, name: 'Apple'}

藍(lán)藍(lán)設(shè)計(jì)www.lapeinture.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)


日歷

鏈接

個(gè)人資料

存檔

久久久久久久免费视频| 国产成人欧美一区二区三区的| 欧美国产日韩精品| 一级女性全黄生活片免费| 91麻豆精品国产自产在线观看一区| 夜夜操网| 九九久久国产精品| 精品视频免费在线| 韩国三级香港三级日本三级la | 午夜家庭影院| 青青久久精品| 日韩在线观看免费| 国产一区免费在线观看| 国产一区二区精品| 国产激情一区二区三区| 欧美一区二区三区在线观看| 国产一区二区精品尤物| 色综合久久天天综线观看| 韩国毛片免费| 久久国产精品自由自在| 亚久久伊人精品青青草原2020| 亚欧乱色一区二区三区| 国产成人精品综合在线| 国产91精品系列在线观看| 久久国产精品永久免费网站| 国产成人精品综合久久久| 九九干| 日韩中文字幕一区| 国产原创中文字幕| 色综合久久天天综合| 天堂网中文字幕| 亚洲女人国产香蕉久久精品| 国产网站在线| 99久久精品国产高清一区二区| 久久国产一区二区| 国产91精品系列在线观看| 国产高清视频免费观看| 日韩专区第一页| 欧美一区二区三区在线观看| 成人av在线播放| 尤物视频网站在线观看| 亚洲第一页色| 一级毛片视频播放| 午夜在线观看视频免费 成人| 成人影视在线观看| 亚洲wwwwww| 999久久久免费精品国产牛牛| 精品国产一区二区三区久久久狼| 色综合久久久久综合体桃花网| 欧美激情在线精品video| 四虎影视久久久免费| 精品视频在线观看一区二区| 国产视频一区在线| 国产视频一区二区在线观看| 久久成人综合网| 日韩专区第一页| 国产伦精品一区二区三区无广告 | 久久国产精品永久免费网站| 九九精品久久| 亚洲 男人 天堂| 国产91素人搭讪系列天堂| 亚洲www美色| 久久精品欧美一区二区| 91麻豆精品国产自产在线观看一区| 日韩专区亚洲综合久久| 国产成人精品一区二区视频| 国产a毛片| 免费一级片在线| 二级片在线观看| 成人免费网站久久久| 二级特黄绝大片免费视频大片| 天天综合在线观看 | 精品视频在线看| 九九久久99综合一区二区| 欧美国产日韩在线| 美国一区二区三区| 欧美另类videosbestsex视频| 国产视频一区二区在线观看| 亚洲第一页色| 精品视频一区二区三区| 天天综合在线观看 | 久久精品欧美一区二区| 国产极品白嫩美女在线观看看| 国产精品自拍一区| 麻豆污视频| 精品国产三级a∨在线观看| 四虎久久精品国产| 国产一区免费在线观看| 91麻豆高清国产在线播放| 国产91精品露脸国语对白| 天天色色色| 九九热国产视频| 午夜欧美成人久久久久久| 国产伦精品一区三区视频| 天天做日日爱夜夜爽| 精品国产亚一区二区三区| 日韩中文字幕一区| 国产一区二区精品在线观看| 免费的黄色小视频| 国产精品免费久久| 你懂的国产精品| 久久99中文字幕久久| 日韩一级黄色| 欧美大片aaaa一级毛片| 精品国产一级毛片| 久久国产精品永久免费网站| 精品国产一区二区三区免费 | 九九精品久久| 久久精品成人一区二区三区| 麻豆午夜视频| 久久国产精品只做精品| 日本免费乱理伦片在线观看2018| 亚洲天堂免费观看| 亚洲精品久久久中文字| 国产伦理精品| 久久国产影院| 色综合久久天天综合观看| 国产韩国精品一区二区三区| 欧美另类videosbestsex高清 | 欧美激情一区二区三区在线播放| 你懂的日韩| 久久99欧美| 国产伦精品一区二区三区在线观看| 青青青草视频在线观看| 欧美一区二区三区在线观看| 美国一区二区三区| 一级片片| 天天做人人爱夜夜爽2020毛片| 国产麻豆精品高清在线播放| 欧美激情一区二区三区在线播放| 欧美大片一区| 天天做日日干| 精品国产三级a| 精品国产一级毛片| 日本特黄一级| 999久久狠狠免费精品| 欧美激情一区二区三区视频高清 | 成人免费网站视频ww| 四虎影视库| 久久国产一久久高清| 精品国产三级a∨在线观看| 精品国产一级毛片| 毛片高清| 日韩男人天堂| 精品国产三级a∨在线观看| 午夜在线亚洲| 久草免费资源| 亚洲天堂在线播放| 青草国产在线观看| 999久久66久6只有精品| 韩国毛片基地| 国产91精品露脸国语对白| 国产视频久久久| 成人在免费观看视频国产| 精品久久久久久综合网| 欧美国产日韩在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产成人精品影视| 香蕉视频久久| 日本免费区| 精品国产亚一区二区三区| 久久久久久久网| 成人免费福利片在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产一级生活片| 成人影院一区二区三区| 久久成人性色生活片| 精品国产一区二区三区免费 | 日韩女人做爰大片| 可以免费在线看黄的网站| 韩国毛片免费大片| 可以免费看污视频的网站| 沈樵在线观看福利| 精品视频在线观看免费| 欧美大片一区| 国产麻豆精品| 国产91精品系列在线观看| 日韩在线观看免费| 99色视频在线观看| 香蕉视频久久| 天天做日日爱夜夜爽| 韩国毛片| 日本伦理片网站| 九九精品影院| 欧美国产日韩在线| 可以在线看黄的网站| 欧美大片aaaa一级毛片| 黄视频网站免费观看| 日韩一级黄色片| 欧美激情在线精品video| 可以在线看黄的网站| 欧美电影免费看大全| 国产视频网站在线观看| 国产麻豆精品免费视频| 精品在线免费播放| 精品视频免费观看| 四虎影视久久久| 国产原创视频在线| 欧美另类videosbestsex高清| 免费国产在线视频|