数组遍历方法

138 阅读1分钟

forEach

匿名函数

            function(){}
            arr.forEach(function(item,index){
                // 第一个形参: 数组元素
                // 第二个形参: index  索引号(下标)
            })

案例

 <script>
        //forEach遍历
        var arr = [98, 57, 78, 95, 89, 99]
        function testForEach() {
            arr.forEach(function (item, index) {
                console.log('index :', index, '  item :', item)
            })
        }
        testForEach()
        //一般遍历
        var arr2 = [98, 57, 78, 95, 89, 99]
        function yiBanBianLi() {
            for (var i = 0; i < arr2.length; i++) {
                console.log(arr2[i])
            }
        }
        yiBanBianLi()
    </script>

查找最大值

<script>
       var arr = [98, 57, 78, 95, 89, 99]
       function testForEach() {
        var max = 0
	arr.forEach(function (item, index) {
	// item: 98,67,78,95,89
	if (item > max) {
	max = item //max:98
	}
	})
	console.log('最大值是 ', max)
       }
       testForEach()
</script>

map

var newArr = arr.map(function(item,index){
               return 新元素
           })
           [新元素1,新元素2,...]

数组内每个元素减10,用一般数组实现

map前置知识回顾

<script>
        var arr = [98, 57, 78, 95, 89, 99]
        function testMap() {
            var newArr = []
            for (var i = 0; i < arr.length; i++) {
                newArr.push(arr[i] - 10)
            }
            console.log(newArr)
        }
        testMap()
</script>

map实现原理

     1. 遍历数组
     2. 映射新数组,return返回值

map案例

 <script>
        var arr = [98, 57, 78, 95, 89, 99]
        function testMap1() {
            var newArr = arr.map(function (item) {
                return item - 20
            })
            console.log(newArr)
        }
        testMap1()
    </script>

filter

var newArr = arr.filter(function(item,index){
               return 条件
           })
           查找数组满足条件的元素,返回新数组

案例

<script>
        var arr = [98, 57, 78, 95, 89, 99]
        function testFilter() {
            var newArr = arr.filter(function (item) {
                return item > 80
            })
            console.log(newArr)
        }
        testFilter()
</script>

find

查找第一个满足条件的元素

案例

  <script>
        var arr = [98, 57, 78, 95, 89, 99]
        function testFind() {
            var newItem = arr.find(function (item) {
                return item < 90
            })
            console.log(newItem)
        }
        testFind()
  </script>

every与some

every
遍历数组,查找数组元素是否全部满足条件,全部满足返回真

some
遍历数组,查找数组是否有一个满足条件,有一个满足条件返回真 
<script>
        var arr = [98, 57, 78, 95, 89, 99]
        function testEvery() {
        var isOk = arr.every(function (item) { // 98 67 78
            return item > 60
        })
            console.log('isOk ', isOk)
        }
        testEvery()
</script>
<script>
        var arr = [98, 57, 78, 95, 89, 99]
        function testSome() {
        var isOk = arr.some(function (item) {
            return item < 60
            })
            console.log('isOk ', isOk);
        }
        testSome()
</script>