• 处理集合_使用every和some方法测试数组


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>使用ForEach方法</title>
        <script src="../unitl/test.js"></script>
        <style>
            #results li.pass {color:green;}
            #results li.fail {color:red;}
        </style>
    
    
    </head>
    
    <body>
        <ul id="results"></ul>
    
    </body>
    
    <script>
    
    
        const ninjas = [
            {name:"Yagyu",weapon:"shuriken"},
            {name:"Yoshi"},
            {name:"Kuma",weapon:"wakizashi"}
        ];
    
        /**内置的every方法接受回调函数,会对每个元素执行该回调函数。
        如果所有数组元素的回调结果都返回true时,every方法将返回true,否则返回false*/
        const allNinjasAreNamed = ninjas.every(ninja => "name" in ninja);
        const allNinjasAreArmed = ninjas.every(ninja => "weapon" in ninja);
    
    
        assert(allNinjasAreNamed, "Every ninja has a name");
        assert(!allNinjasAreArmed,"But not every ninja is armed");
    
    
        //内置的some方法接受回调函数作为参数。只要至少有意向的回调结果返回true.否则返回false。
        const someNinjasAreArmed = ninjas.some(ninja.some(ninja=>"weapon" in ninja));
        assert(someNinjasAreArmed,"But some ninjas are armed");
    
        
    
    </script>
    </html>
    
    
    

    本例子中引入的js: test.js

    在本例中显示了ninja对象集合,但无法确认每个对象的name和weapon属性。想解决这个问题,需要首先利用every方法。
    
          const allNinjaAreNamed = ninjas.every(ninja=>"name" in ninja);
    

    every方法接收回调函数,对集合中的每个ninja对象检查是否含有name属性。当且仅全部的回调函数都返回true时,every方法才返回true,否则返回false。
    有时,我们只关心数组中的部分元素是否满足某些条件。这个,可以使用some方法:

          var someNinjasAreArmed = ninjas.some(ninja=>"weapon" in ninja);
    

    some方法从数组的第1项开始执行回调函数,直到回调函数函数返回true。如果有一项元素执行回调函数时,返回true,some方法返回true,否则some方法返回false。

  • 相关阅读:
    部署NetCore项目(本文介绍用用IIS部署)
    vs中添加MySql实体集流程
    一文搞定HashMap的实现原理
    二分查找
    hashcode返回值可能为负数
    哈希碰撞与生日攻击
    并发的第二天
    java并发编程-1
    排序的第一天
    并发的第一天
  • 原文地址:https://www.cnblogs.com/jamal/p/14074772.html
Copyright © 2020-2023  润新知