语法 类和对象 字符串 数组 日期和时间 数学 方法 元编程 jQuery Ajax 正则表达式 网络 设计模式 数据库 测试

发布于 2016-05-29 08:24:15 | 126 次阅读 | 评论: 0 | 来源: 网络整理

问题

你希望能够在特定的情况下检测出在数组中的每个元素。

解决方案

使用 Array.every (ECMAScript 5):

evens = (x for x in [0..10] by 2)

evens.every (x)-> x % 2 == 0
# => true

Array.every 被加入到 Mozilla 的 Javascript 1.6 ,ECMAScript 5 标准。如果你的浏览器支持,但仍无法实施 EC5 ,那么请检查 [ _.all from underscore.js]( http://documentcloud.github.io/underscore/) 。

对于一个真实例子,假设你有一个多选择列表,如下:

<select multiple id="my-select-list">
  <option>1</option>
  <option>2</option>
  <option>Red Car</option>
  <option>Blue Car</option>
</select>

现在你要验证用户只选择了数字。让我们利用 array.every :

validateNumeric = (item)->
  parseFloat(item) == parseInt(item) && !isNaN(item)

values = $("#my-select-list").val()

values.every validateNumeric

讨论

这与 Ruby 中的 Array #all? 的方法很相似。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务