js常用的數組方法

js常用的數組方法

1.filter() 不會改變原始數組,新數組中的元素是過濾指定數組中符合條件的所有元素

兩種寫法區別:有return?的加了{},否則沒有return不需要加{}

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.filter((item, index, self) => {

  return self.indexOf(item) === index? ? ?//?indexOf找到數組中第一個符合條件的元素位置,沒找到指定元素則返回 -1

})

console.log(bb);? //? [1, 2, 3, 4, 5, 6]

?

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.filter((item, index, self) =>

  self.indexOf(item) === index

)

console.log(bb);?//??[1, 2, 3, 4, 5, 6]

?

ES6數組去重寫法:

var arr = [1, 2, 3, 4, 4, 5, 6, 6];
var set = new Set(arr);
var newArr = Array.from(set);
console.log(newArr); //?[1, 2, 3, 4, 5,6]

?

2.map() 不會改變原始數組,新數組中的元素為按原始數組順序依次處理元素后的值,同樣有兩種寫法

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.map((item) => {

  return item = item * item

})

console.log(bb); //? [1, 4, 9, 16, 16, 25, 36, 36]

?

3.every() 不會改變原始數組,檢測數組所有元素是否都符合指定條件,全部通過返回true,否則返回false(所有項滿足返回true)

  • 如果數組中檢測到有一個元素不滿足,則整個表達式返回?false?,且剩余的元素不會再進行檢測
  • 如果所有元素都滿足條件,則返回 true

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.every((item) => {

  return item != 3

})

console.log(bb); //? false

?

4.some() 不會改變原始數組,檢測數組中的元素是否滿足指定條件,只要有一個通過返回true,否則返回false(只要一項滿足返回true)

  • 如果有一個元素滿足條件,則表達式返回true?, 剩余的元素不會再執行檢測
  • 如果沒有滿足條件的元素,則返回false

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.some((item) => {

  return item != 3

})

console.log(bb); // true

?

5.findIndex()?不改變原始數組,找到符合條件的數組第一個元素位置

  • 當數組中的元素在測試條件時返回?true?時, findIndex() 返回符合條件的元素的索引位置,之后的值不會再調用執行函數
  • 如果沒有符合條件的元素返回 -1

var aa = [1, 2, 4, 4, 5];

var bb = aa.findIndex(item => {

  return item > 3

});

console.log(bb); // 2

?

6.find()不改變原始數組,找到符合條件的數組的第一個元素的值

  • 當數組中的元素在測試條件時返回?true?時, find() 返回符合條件的元素,之后的值不會再調用執行函數
  • 如果沒有符合條件的元素返回 undefined

var aa = [1, 2, 4, 4, 5];

var bb = aa.find(item => {

  return item > 3

});

console.log(bb); // 4

?

7.?slice()?不會改變原始數組,從已有的數組中返回選定的元素,截取組成新字符串(數組截取)

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.slice(2,4)

console.log(bb); // [3, 4]

?

8.splice()?改變原始數組,用于添加或刪除數組中的元素(數組更新)

第一個元素是從何處添加/刪除元素,第二個元素是刪除多少元素,第三個元素(不必填)是要添加到數組的新元素

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

aa.splice(3,4,2)? ?//?從第3位開始刪除4個元素,并把2添加進刪除的位置

console.log(aa); //[1, 2, 3, 2, 6]

?

9.join()不改變原數組,數組轉字符串

var aa = [1, 2, 3, 4, 4, 5, 6, 6];

var bb = aa.join()

console.log(bb); //?1,2,3,4,4,5,6,6

?

10. split()不改變原字符串,字符串變數組

var aa = '1,2,3,4,4,5,6,6';

var bb = aa.split(',')

console.log(bb); //?["1", "2", "3", "4", "4", "5", "6", "6"]

?

11.?遍歷數組方法 keys()、values()、entries()

keys()是對鍵名的遍歷

let aa = ["a", "b", "c", "d"];

for (let index of aa.keys()) {

  console.log(index);

}

values()對鍵值的遍歷

let bb = ["a", "b", "c", "d"];

for (let item of bb.values()) {

  console.log(item);

}

entries()是對鍵值對的遍歷

let arr = ["a", "b", "c", "d"];

for (let i of arr.entries()) {

  console.log(i);

}

for (let [index, item] of arr.entries()) {

  console.log(index + ":" + item);

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247500.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247500.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247500.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS 適配HTTPS方法

一切為了迎合蘋果 在WWDC 2016開發者大會上,蘋果宣布了一個最后期限:到2017年1月1日 App Store中的所有應用都必須啟用 App Transport Security安全功能。App Transport Security(ATS)是蘋果在iOS 9中引入的一項隱私保護功能&…

模板—tarjan求割邊

int dfn[MAXN],low[MAXN],cnt; void tarjan(int x,int edg) {low[x]dfn[x]cnt;for(int if(x);i;in(i))if(!dfn[v(i)]){tarjan(v(i),i);low[x]min(low[x],low[v(i)]);if(low[v(i)]>dfn[x])isbridge[i]isbridge[i^1]1;}else if(i!(edg^1))low[x]min(low[x],dfn(v(i))); } 轉載…

GoJs Pictures 官方介紹文檔

圖片 使用Picture類顯示圖像。 最常見的用法是使用URL字符串設置Picture.source屬性,以及通過GraphObject.desiredSize(圖對象的所需尺寸)獲取或通過設置GraphObject.width(圖對象的寬)和GraphObject.height&#xff0…

怎樣購買及安裝ssl安全證書

查找資料記錄,不是我的項目筆記 現在越來越多的網站都開始用安全鏈接了,在國外的話,如果不是一個安全鏈接,用戶很大程度上會拒絕使用,所有安全鏈接是未來的趨勢,樓主第一次配安全證書的時候,剛剛…

XmlViewResolver 和 ResourceBundleViewResolver

使用XmlViewResolver 如果視圖對象的 Bean 數目太多,那么直接在 smart-servlet.xml 文件中配置,勢必影響主配置文件的簡潔性。XmlViewResolver 和 BeanNameViewResolver 功能相似,唯一不同的是它可以將視圖 Bean 定義在一個獨立的 XML 文件中…

(轉載)Git使用教程:最詳細、最傻瓜、最淺顯、真正手把手教!

轉載自 Git使用教程 預警:因為詳細,所以行文有些長,新手邊看邊操作效果出乎你的預料)一:Git是什么? Git是目前世界上最先進的分布式版本控制系統。 工作原理 / 流程: Workspace:工作…

soureTree中如何設置git 用戶名與密碼 SourceTree提交修改用戶詳細圖文方法

mac上軟件更新: 現在沒有網絡小模塊了,在同行右邊高級里面有默認用戶名刪除即可!!!! sourceTree 切換Git登錄用戶,之前在SourceTree提交遠程服務用的是同事的賬號,同事離職后賬號也…

shell 腳本 生成文件,文件名為日期時間

腳本如下 #/bin/bashfilename$(date %Y%m%d)_$(date %H%M%S) touch $filename.txt 其中 $() 表示括號中的 shell 命令的結果,所以 filename 是一個字符串,比如 20190714_111631,即 2019 年 7 月 14 日 11 點 16 分 31 秒。 然后第二行命令&am…

js利用HTML5的拖拽API做流程圖

上代碼 直接用看效果&#xff0c;學習一下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style type"text/css">#d1{width:800px;height:800px;border: 1…

Pots (BFS ? 輸出路徑)

題目鏈接&#xff1a;http://poj.org/problem?id3414 思路&#xff1a; 因為有六種操作&#xff0c;所以六種操作中合法的都加入隊列中BFS 如何去輸出路徑呢&#xff1f; 我們不妨設一個string數組&#xff0c;它的索引就和我們的步數有關&#xff0c;然后按順序輸出就可以了…

box-sizing的使用

box-sizing 人們慢慢的意識到傳統的盒子模型不直接&#xff0c;所以他們新增了一個叫做 box-sizing 的CSS屬性。當你設置一個元素為 box-sizing: border-box; 時&#xff0c;此元素的內邊距和邊框不再會增加它的寬度。這里有一個與前一頁相同的例子&#xff0c;唯一的區別是兩…

vue-router的hash模式和history模式,

hash模式背后的原理是onhashchange事件,可以在window對象上監聽這個事件: window.onhashchange function(event){ console.log(event.oldURL, event.newURL); let hash location.hash.slice(1); document.body.style.color hash; } 上面的代碼可以通過改變hash來改變頁面字體…

更新node最新版本方法和 npm install -g n 運行錯誤

使用xshell連接linux服務器后&#xff0c;首先輸入node -v查看當前使用的版本 如果上面查看的版本比較低&#xff0c;則可以開始升級 清除npm cache 升級之前還需要安裝n模塊&#xff0c;n模塊是專門用來管理nodejs的版本 輸入npm install -g n n模塊安裝完成之后&#x…

vue-router的路由

路由和組件是有區別的&#xff1a;組件一般是在同一個頁面的不同模塊&#xff0c;但是路由是直接切換到另一個頁面&#xff0c;之前的頁面銷毀。 App.vue中的router-view會渲染頂級路由匹配到的組件。組件內部嵌套的router-view會渲染子路由匹配到的組件。 當路由跳轉的時候&am…

mac上的更新node npm

查看當前node版本 $ node -v v8.9.4 清除node.js的cache(不確定有沒有必要) $ sudo npm cache clean -f Password: npm WARN using --force I sure hope you know what you are doing. 安裝工具n &#xff0c;這個工具是專門用來管理node.js版本的 $ sudo npm install -g …

電源芯片選擇DC/DC還是LDO?《轉》

這個取決于你的應用場合。比如用在升壓場合&#xff0c;當然只能用DC/DC&#xff0c;因為LDO是壓降型&#xff0c;不能升壓。另外看下各自的主要特點&#xff1a; DC/DC:效率高&#xff0c;噪聲大&#xff1b; LDO:噪聲低&#xff0c;靜態電流小&#xff1b; 所以如果是用在壓降…

Atom React或前端插件推薦

分享一些Atom個人在用的插件,喜歡請點贊 1. color-picker 取色工具 2. pigments 編輯器中直接查看代碼所代表的顏色&#xff0c;工具雖小但是很實用。 3. minimap 仿sublime text的縮略代碼查看&#xff0c;想找的地方一目了然。 4. highlight-selected 選擇某段代碼自動高…

Nike Kyrie 1 Performance Review

Traction – There has been many varying opinions on the Kyrie 1’s traction, and I don’t think any of them have been wrong. I’d say under the right conditions, the traction is excellent. I’ve experienced nothing but great traction out of them, but all o…

Tapable.plugin is deprecated. Use new API on `.hooks` instead

問題描述 在使用extract-text-webpack-plugin給webpack打包時出現報錯 Tapable.plugin is deprecated. Use new API on .hooks instead 1 問題原因 extract-text-webpack-plugin目前版本不支持webpack4。 解決方案 使用extract-text-webpack-plugin的最新的beta版 npm inst…

第二周進度總結

本周主要在完成假期作業&#xff0c;學習的時間大部分花在代碼上。完成了3個代碼的編譯。第一個是害死人不償命的(3n1)猜想。第二個是成績排名&#xff08;輸出成績最高和成績最低學生的姓名和學號&#xff09;。第三個是換個格式來輸出任一個不超過 3 位的正整數。這三個題目中…