js入門(7)
arguments
arguments 類陣列 存放所有的實參
類陣列 具有索引值,但是不能使用陣列下的api(push,pop,splice…)
filter 過濾
過濾
filter() 作用:過濾陣列中元素,返回新陣列存放過濾元素
引數 回撥函式
回參一item 陣列元素
回參二index 索引值
var res = arr.filter(function(item,index){
—> 是可以先修改元素,後篩選的
item arr 陣列中元素 index 索引值
console.log(item,index);
return 後面跟 條件表示式
res 接受滿足條件的所有元素;並存放在陣列中
return item.age>32
})
foreach
forEach()作用:遍歷陣列
回參一:陣列元素
回參二:索引值
arr.forEach(function(item,index){})
map
1.遍歷陣列 返回新陣列
新陣列中內容就是return 返回的內容
與過濾區別,過濾是根據條件篩選,返回條件表達返回值
item 陣列元素 index 是索引
newArr 存放return返回的內容
var newArr = arr.map(function(item,index){
return item
})
2.修改資料,重組資料,原來的arr沒變化
var res = arr1.map(function(item){
item = item * 2;
return item;
})
reduce
reduce() 沒有初始值
可以用reduce 實現累加等運算,並返回運算結果
var arr = [1,2,3,5]
var res = arr.reduce(function(accumulator,currentValue,currentIndex,sourcArray)
{
accumulator 記錄累計運算結果
accumulator 陣列索引的元,這個元素是運算的運算元
currentIndex 索引值,不是從0開始的
sourArray 原陣列
console.log(accumulator,currentIndex,currentValue,sourcArray);
return accumulator+currentValue;
})
注意 回參一 初始值為number型別 預設賦值 oders[0]
reduce(fun,param) 參二作用:給回參一sum賦初始值 改變預設orders[0]
var res = orders.reduce(function(sum,item){})
some
some() 檢查陣列中是否存在滿足條件的元素,滿足返回true;不滿足 返回false
var res = produce.some(function(item){})
陣列求最大值&最小值
求最大值 方式一
var max = arr[0];
for(var i=0;i<arr.length;i++){
var max = arr[0] // bug 永遠都是初始化–> 導致第一個數於最後一個陣列比較大小
max = Math.max(max,arr[i])
}
console.log(max);
求最大值 方法二
var max = arr.reduce(function(pre,next){
return Math.max(pre,next);
});
console.log(max);
方法三:利用排序
sort() 排序 引數 函式
arr1.sort(function(a,b){
a-b 升序 b-a 降序
注意 number型別排序,如果是字串,更具第一個字元的編碼值大小進行排序
return a-b
})
var max = arr1[arr.length-1]
console.log(arr1);
es6 很巧
var arr2 = [10,101,56,2,4,6,7,1];
var max1 = Math.max(…arr2);
console.log(max1);
陣列排序
選值排序 將定某個位置是最大值
用將定的最大值 與其他元素比較
在比較過程中進行,如果存在與比最大值還大的數,就進行換值處理
以此類推,做到大值在前 小值在後 實現降序效果
for(var i = 0;i<arr.length;i++){
arr[i] // 用arr[i] 與陣列中所有的元素
for(var j =0;j<arr.length;j++){
if(arr[i] > arr[j]){
大值在前,小值災後
問題:arr[i] 前 arr[j] 後
—> 換值處理
var tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp
}
}
}
console.log(arr);
相關文章
- Threes.js入門篇之7 - 場景光照JS
- JS快速入門(一)JS
- 【入門指南】node.jsNode.js
- D3.js入門JS
- Next.js 入門教程JS
- Vue.js快速入門Vue.js
- JS-基礎入門JS
- MQTT.js 入門教程MQQTJS
- Three.js 入門示例JS
- JS基礎入門篇( 一 )JS
- JS正規表示式入門JS
- JS基礎入門篇(一)JS
- EChart.js簡單入門JS
- Next.js入門:Hello WorldJS
- Google Chrome除錯js入門GoChrome除錯JS
- D3js之入門JS
- Node.js核心入門(一)Node.js
- node.js快速入門(一)Node.js
- Node.js與ES632_Node.js入門Node.js
- Vue.js入門 (一) - 簡介Vue.js
- JS高度融合入門筆記(二)JS筆記
- 0基礎7日入門PythonPython
- EF7建立模型入門篇模型
- JS基礎入門篇(十)—字串方法JS字串
- JS基礎入門篇(十八)—日期物件JS物件
- Nuxt.js服務端渲染入門UXJS服務端
- Vue.js新手入門指南[轉載]Vue.js
- JS基礎入門篇(七)—運算子JS
- Node.js入門教學之一Node.js
- Next.js 入門超詳解教程JS
- 簡單的 Vue.js 入門方法Vue.js
- 極簡 Node.js 入門 - 2.2 事件Node.js事件
- 10分鐘快速入門rollup.jsJS
- 打包工具 rollup.js 入門教程JS
- 【實驗樓】Linux入門 7-9Linux
- SAP PM 入門系列7 - 常用Function ModulesFunction
- 極簡 Node.js 入門 - 3.3 檔案寫入Node.js
- Next.js踩坑入門系列(一)— Hello Next.js!JS