js中forEach、filter、find、some、map、reduce、every的用法
web JavaScript 2023-08-24 506 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6481034 2614 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

1,forEach方法

迭代(遍历) 数组

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

注意: forEach() 对于空数组是不会执行回调函数的。

<script>
    // forEach 迭代(遍历) 数组
    var arr = [1, 2, 3];
    var sum = 0;
    arr.forEach(function(value, index, array) {
        console.log('每个数组元素' + value);
        console.log('每个数组元素的索引号' + index);
        console.log('数组本身' + array); // 数组本身1,2,3
        sum += value;
    })
    console.log(sum); // 6
</script>
from clipboard

2,filter

filter 查找满足条件的元素 返回的是一个数组 而且是把所有满足条件的元素返回回来

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

注意: filter() 不会对空数组进行检测。

注意: filter() 不会改变原始数组。

<script>
    // filter 筛选数组
    var arr = [12, 66, 4, 88, 3, 7];
    var newArr = arr.filter(function(value, index) {
        // return value >= 20;
        return value % 2 === 0;
    });
    console.log(newArr); // [12, 66, 4, 88]
</script>
<script>
        let arr= [
            {id:1,name: "a", age: 12},
            {id:2,name: "b", age: 15},
            {id:3,name: "c", age: 16},
            {id:4,name: "d", age: 17},
            {id:5,name: "e", age: 14},
            {id:5,name: "f", age: 10},
            {id:5,name: "g", age: 19}
        ]
        let newarr=arr.filter(function(item){
            return item.age>15
        })
        console.log(newarr)
        // [{id: 3, name: 'c', age: 16}
        //  {id: 4, name: 'd', age: 17}
        //  {id: 5, name: 'g', age: 19}]
    </script>

3,find

find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。

find() 方法为数组中的每个元素都调用一次函数执行:

当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。

如果没有符合条件的元素返回 undefined

注意: find() 对于空数组,函数是不会执行的。

注意: find() 并没有改变数组的原始值。

<script>
    let arr = [1, 2, 3];
    let arr1 = arr.find(function (item) {
        return item >= 2
    });
    console.log( arr1); // 2
</script>

4,some

some 查找满足条件的元素是否存在 返回的是一个布尔值 如果查找到第一个满足条件的元素就终止循环

some() 方法会依次执行数组的每个元素:

如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。

如果没有满足条件的元素,则返回false

注意: some() 不会对空数组进行检测。

注意: some() 不会改变原始数组。

<script>
    // some 查找数组中是否有满足条件的元素 
    // var arr = [10, 30, 4];
    // var flag = arr.some(function(value) {
    //     // return value >= 20;
    //     return value < 3;
    // });
    // console.log(flag);
    var arr1 = ['red', 'pink', 'blue'];
    var flag1 = arr1.some(function(value) {
        return value == 'pink';
    });
    console.log(flag1); // true
    // 1. filter 也是查找满足条件的元素 返回的是一个数组 而且是把所有满足条件的元素返回回来
    // 2. some 也是查找满足条件的元素是否存在  返回的是一个布尔值 如果查找到第一个满足条件的元素就终止循环
</script>

5,map

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map() 方法按照原始数组元素顺序依次处理元素。

注意: map() 不会对空数组进行检测。

注意: map() 不会改变原始数组。

<script>
    let arr = [2,3,5,6,7,8]
    let arr1 = arr.map(function(item){
        return item >5;
    })
    console.log(arr1)//[false,false,false,true,true,true]
</script>

6,reduce

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

reduce() 可以作为一个高阶函数,用于函数的 compose。

注意: reduce() 对于空数组是不会执行回调函数的。

<script>
    var numbers = [65, 44, 12, 4];
    function getSum(total, num) {
        return total + num;
    }
    var num = [1, 2, 3]
    console.log(numbers.reduce(getSum));  // 125
    console.log(numbers.reduce(getSum,1000));  // 1125,可以定义初始值
    console.log(num.reduce(getSum));  // 6
    console.log(num.reduce(getSum,2000));  // 2006

    var num2 = []
    // console.log(num2.reduce(getSum));  // 没有初始值,会报错
    console.log(num2.reduce(getSum,2000));  // 2000
</script>

7,every

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

every() 方法使用指定函数检测数组中的所有元素:

如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。

如果所有元素都满足条件,则返回 true。

注意: every() 不会对空数组进行检测。

注意: every() 不会改变原始数组。

<script>
    let arr = [2, 4, 6, 8];
    let flag = arr.every(function(item) {
        return item > 6
    });
    console.log(flag); // false
</script>

版权声明:本篇文章来源于网络。 来源链接

相关推荐
return和return false的区别
JavaScript | 2020-08-26 18868
1. return返回null,起到中断方法执行的效果,只要不return false事件处理函数将会继续执行,表单将提交 2. return false,事件处理函数会取消事件,不再继续向下执行。比如表单将终止提交。 <script> function validateForm(){ var username...
console.log怎样输出换行
JavaScript | 2020-04-17 13678
两个console.log()之间默认是换行的,不用单独处理,如果想输出换行,可以用 console.log( '\n' ); 其他内容 如果同时打印数字和字符串,并且数字在前,打印字符串会添加引号显示。 console.log('test',1) ==》test 1 console.log(1,'test') ...
评论:0条
评论加载中...
发表评论