中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js中數組的用法示例

發布時間:2022-03-22 15:01:36 來源:億速云 閱讀:120 作者:小新 欄目:web開發

這篇文章給大家分享的是有關js中數組的用法示例的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

數組

1 reduce方法同時實現map和filter

假設現在有一個數列,你希望更新它的每一項(map的功能)然后篩選出一部分(filter的功能)。如果是先使用map然后filter的話,你需要遍歷這個數組兩次。
在下面的代碼中,我們將數列中的值翻倍,然后挑選出那些大于50的數。

const numbers = [10, 20, 30, 40];
const doubledOver50 = numbers.reduce((finalList, num) => {
 num = num * 2;
 if (num > 50) {
 finalList.push(num);
 }
 return finalList;
}, []);
doubledOver50; // [60, 80]

2 統計數組中相同項的個數

很多時候,你希望統計數組中重復出現項的個數然后用一個對象表示。那么你可以使用reduce方法處理這個數組。

下面的代碼將統計每一種車的數目然后把總數用一個對象表示。

var cars = ['BMW','Benz', 'Benz', 'Tesla', 'BMW', 'Toyota'];
var carsObj = cars.reduce(function (obj, name) {
 obj[name] = obj[name] ? ++obj[name] : 1;
 return obj;
}, {});
carsObj; // => { BMW: 2, Benz: 2, Tesla: 1, Toyota: 1 }

3 使用解構來交換參數數值

有時候你會將函數返回的多個值放在一個數組里。我們可以使用數組解構來獲取其中每一個值。

let param1 = 1;
let param2 = 2;
[param1, param2] = [param2, param1];
console.log(param1) // 2
console.log(param2) // 1

當然我們關于交換數值有不少其他辦法:

var temp = a; a = b; b = temp 
b = [a, a = b][0]  
a = a + b; b = a - b; a = a - b

4 接收函數返回的多個結果

在下面的代碼中,我們從/post中獲取一個帖子,然后在/comments中獲取相關評論。由于我們使用的是async/await,函數把返回值放在一個數組中。而我們使用數組解構后就可以把返回值直接賦給相應的變量。

async function getFullPost(){
 return await Promise.all([
 fetch('/post'),
 fetch('/comments')
 ]);
}
const [post, comments] = getFullPost();

5 將數組平鋪到指定深度

使用遞歸,為每個深度級別 depth 遞減 1 。 使用 Array.reduce() 和 Array.concat() 來合并元素或數組。 基本情況下,depth 等于 1 停止遞歸。 省略第二個參數,depth 只能平鋪到 1 (單層平鋪) 的深度。

const flatten = (arr, depth = 1) =>
 depth != 1
 ? arr.reduce((a, v) => a.concat(Array.isArray(v) ? flatten(v, depth - 1) : v), [])
 : arr.reduce((a, v) => a.concat(v), []);
flatten([1, [2], 3, 4]);  		 // [1, 2, 3, 4]
flatten([1, [2, [3, [4, 5], 6], 7], 8], 2); // [1, 2, 3, [4, 5], 6, 7, 8]

6 數組的對象解構

數組也可以對象解構,可以方便的獲取數組的第n個值

const csvFileLine = '1997,John Doe,US,john@doe.com,New York';
const { 2: country, 4: state } = csvFileLine.split(',');

country			// US
state			// New Yourk

感謝各位的閱讀!關于“js中數組的用法示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

九龙城区| 乐陵市| 平罗县| 周口市| 绥德县| 罗平县| 确山县| 双辽市| 盈江县| 苍山县| 彩票| 凤凰县| 大埔区| 汝阳县| 泊头市| 永平县| 安阳市| 昭苏县| 武强县| 上蔡县| 防城港市| 汉中市| 乐亭县| 孝义市| 景德镇市| 嘉鱼县| 衡阳县| 扶沟县| 襄樊市| 微山县| 鲁山县| 文化| 合江县| 宁陵县| 兴城市| 淳化县| 沙坪坝区| 屯昌县| 定远县| 凯里市| 酒泉市|