常用的数组(字符串)方法有哪些?(三)

简介: some:判断数组中有没有符合条件的元素,一个符合的都没有返回false,有一个就是true。

15.some:判断数组中有没有符合条件的元素,一个符合的都没有返回false,有一个就是true。

        let arr = ["1", 1, "a", "b", "a"];
        let someFlag1 = arr.some((item) => {
            return item == "a";
        })
        console.log(someFlag1); // true
        let someFlag2 = arr.some((item) => {
            return item == "c";
        })
        console.log(someFlag2); // false


16.every:every与some差不多,全部符合条件才返回true,否则就是false。

        let arr = ["1", 1, "a", "b", "a"];
        let everyFlag1 = arr.every((item) => {
            return item == "a";
        })
        console.log(everyFlag1); // false
        let arr1 = ["a", "a"]
        let everyFlag2 = arr1.every((item) => {
            return item == "a";
        })
        console.log(everyFlag2); // true


17.find方法:找到符合条件的项,并且返回第一项,找不到返回undefined

        var findArr = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
        var index = findArr.find((item, index, arr) => {
            console.log(item); // Alice
            console.log(index); // 0
            console.log(arr); // ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']
            return item == "Alice";
        })
        console.log(index); // Alice
        var index = findArr.find((item, index, arr) => {
            return item == "1";
        })
        console.log(index); // undefined


18.findIndex方法:找到符合条件的项的下标,并且返回第一个,找不到就返回-1;

        var indexArr = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
        var index = indexArr.findIndex((item, index, arr) => {
            console.log(item); // Alice
            console.log(index); // 0
            console.log(arr); // ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']
            return item == "Alice";
        })
        console.log(index); // 0
        var index = indexArr.findIndex((item, index, arr) => {
            return item == "1";
        })
        console.log(index); // -1


19.includes方法:数组或者字符串是否包含指定元素,有就返回true,没有就返回false

        // 数组
        var findArr = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
        var index = findArr.includes("Alice");
        console.log(index); // true
        var index = findArr.includes("1");
        console.log(index); // false
        // 字符串
        var str = "abcdefg";
        var index = str.includes("a");
        console.log(index); // true
        var index = str.includes("w");
        console.log(index); // false


项目场景:模糊查询


var arr = [
            {
                name:"王巴丹",
                age:11
            },
            {
                name:"王七丹",
                age:10
            },
            {
                name:"王刘丹",
                age:12
            },
            {
                name:"张是丹",
                age:12
            }
        ]
        var arrIncludes = arr.filter((item)=>{
            return item.name.includes("王")
        })
        console.log(arrIncludes);//  [{name:"王巴丹",age:11},{name:"王七丹",age:10},{name:"王刘丹",age:12}]


20.reduce方法


  reduce() 方法对数组中的每个元素执行一个升序执行的 reducer 函数,并将结果汇总为单个返回值。


      第一个参数是累加器,直白点就是加多少次

       第二个参数是原数组的值

       第三个参数是原数组值对应的下标

       第四个参数是原数组本身

       第五个参数(与回调函数并列的参数)是初始值,就是从初始值的基础上累加。


项目场景1:累加计算和

        var numbers = [1, 2, 3, 4]
        let result = numbers.reduce(function (total, currentValue, currentIndex, arr) {
            console.log(total, currentValue, currentIndex, arr)
            return total + currentValue
        }, 10)
        console.log(result); // 20


项目场景2:扁平化数组(适用二维数组变一维数组,数组元素都是数组)

        var numbers = [[1, 2], [3, 4]]
        let result = numbers.reduce(function (total, currentValue, currentIndex, arr) {
            console.log(total, currentValue, currentIndex, arr)
            return total.concat(currentValue)
        })
        console.log(result); // [1, 2, 3, 4]


项目场景三:直接计算总价

        var numbers = [
            {
                price: 10,
                num: 1
            },
            {
                price: 20,
                num: 2
            }
        ]
        let result = numbers.reduce(function (total, currentValue, currentIndex, arr) {
            // console.log(total, currentValue, currentIndex, arr)
            return total + currentValue.price * currentValue.num;
        }, 0)
        console.log(result); // 50


项目场景四:计算数组中每个元素出现的次数,项目中用来做投票统计板

        var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
        var countedNames = names.reduce(function (allNames, name) {
            if (name in allNames) {
                allNames[name]++;
            } else {
                allNames[name] = 1;
            }
            return allNames;
        }, {});
        console.log(countedNames); // {Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}


关于数组和字符串的方法很多,其实真正常用的也就固定的几个,大家有不同的项目场景可以相互交流学习


相关文章
|
5月前
数组相关方法?
数组相关方法?
|
3月前
|
JavaScript 前端开发 API
|
5月前
|
前端开发
数组常用的几个方法
数组常用的几个方法
21 0
字符串转数组、数组转字符串、给第一个单词色值
字符串转数组、数组转字符串、给第一个单词色值
|
8月前
|
JavaScript 前端开发 Java
数组转字符串( 字符串转数组~
数组转字符串可以使用不同的方法,具体取决于编程语言和上下文环境。以下是一些通用的示例:
|
9月前
|
JavaScript
常用的数组(字符串)方法有哪些?(一)
1.pop:末位删除,即删除数组的最后一项,返回值是被删除项。 2.shift:首位删除,即删除数组的第一项,返回值是被删除项。 3.splice:指定下标删除元素,返回被删除的元素。第一个参数是从下标几开始删除,第二个参数是删除几个,第三个参数是要插入的元素。splice方法是会改变原数组的。删除功能用的比较多,我个人更喜欢用filter来变相实现删除,splice是会改变原数组的,而filter不会
|
9月前
常用的数组(字符串)方法有哪些?(二)
concat:合并数组或者字符串,concat在项目中用的还是比较多的,最经典的就是一个表格数据是有两个或者三个数组组成的时候会用到,watch监听数组和concat结合使用。下期做一个例子。
|
8月前
数组、字符串、集合的相互转换
数组、字符串、集合的相互转换
36 0
|
10月前
|
索引
字符串方法
字符串方法
67 0
|
JavaScript 前端开发
使用字符串方法
使用字符串方法
58 0