freeCodeCamp/guide/chinese/certifications/javascript-algorithms-and-d.../intermediate-algorithm-scri.../everything-be-true/index.md

6.7 KiB
Raw Blame History

title localeTitle
Everything Be True 一切都是真的

:triangular_flag_on_post:如果卡住,请记得使用**Read-Search-Ask** 。尝试配对程序:busts_in_silhouette:并编写自己的代码:pencil:

:checkered_flag:问题说明:

程序需要检查第二个参数是否是一个真正的元素,并且它必须为第一个参数中的每个对象检查这个。

相关链接

:speech_balloon:提示1

记得迭代第一个参数来检查每个对象。

现在尝试解决问题

:speech_balloon:提示2

只有当所有这些都是真理时,我们才会返回真实,所以请确保所有这些都是真的。

现在尝试解决问题

:speech_balloon:提示3

现在尝试解决问题

您可以使用循环或回调函数,有多种方法可以解决此问题。

扰流警报!

警告牌

解决方案!

:beginner:基本代码解决方案

使用for-in循环和hasOwnProperty

function truthCheck(collection, pre) { 
  // Create a counter to check how many are true. 
  var counter = 0; 
  // Check for each object 
  for (var c in collection) { 
    // If it is has property and value is truthy 
    if (collection[c].hasOwnProperty(pre) && Boolean(collection[c][pre])) { 
      counter++; 
    } 
  } 
  // Outside the loop, check to see if we got true for all of them and return true or false 
  return counter == collection.length; 
 } 
 
 // test here 
 truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex"); 

:rocket: 运行代码

代码说明:

  • 首先,我创建一个计数器来检查有多少个案实际上是真的。
  • 然后检查每个对象的值是否真实
  • 在循环之外,我检查计数器变量是否具有与集合长度相同的值如果为true则返回true ,否则返回false

相关链接

:sunflower:中级代码解决方案:

使用Array.every

function truthCheck(collection, pre) { 
  return collection.every(function (element) { 
    return element.hasOwnProperty(pre) && Boolean(element[pre]); 
  }); 
 } 
 
 // test here 
 truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex"); 

:rocket: 运行代码

代码说明:

  • 使用本机“every”方法来测试数组中的所有元素是否都通过了测试。
  • 此链接将帮助Array.prototype.every

相关链接

:rotating_light:高级代码解决方案

function truthCheck(collection, pre) { 
  // Is everyone being true? 
  return collection.every(obj => obj[pre]); 
 } 
 
 truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex"); 

:rocket: 运行代码

代码说明:

  • 对于collection数组中的_每个_对象检查在pre参数中传递的对象属性的真实性
  • Array#every方法在内部检查回调返回的值是否真实。
  • 如果它为_每个_对象传递则返回true 。否则,返回false

相关链接

:clipboard:捐款说明:

  • :warning: 请勿添加与任何现有解决方案类似的解决方案。如果您认为它**相似但更好** ,那么尝试合并(或替换)现有的类似解决方案。
  • 添加解决方案的说明。
  • 将解决方案分为以下类别之一 - 基本 中级高级:traffic_light:
  • 如果您添加了任何**相关的主要内容,**请仅添加您的用户名。 :warning: 不要 删除任何现有的用户名

看到:point_right: Wiki Challenge Solution Template供参考。