首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JS:使用Length属性编写If语句

JS:使用Length属性编写If语句
EN

Stack Overflow用户
提问于 2014-07-21 16:29:39
回答 5查看 1.5K关注 0票数 0

我对JS很陌生,所以别对我太客气了。我把这个数组放在一个变量中,并试图找到一种更好的方法来编写if语句。因此,如果变量中的名称增长,我就不需要更改if语句,因为它不会被硬编码。

代码语言:javascript
复制
var names = ["beth", "barry", "debbie", "peter"]

if (names[0] && names [1] && names [2] && names [3] {
    Do something...
}

有些东西告诉我,我需要使用.length属性,但我无法想出如何在该语句中正确使用它。与…有关的东西:

代码语言:javascript
复制
if (names[i] * names.length) { 
    Do something...
}

我知道这是不对的。我认为需要找到每一个的索引并循环它,确保循环不超过数组中的值的数量。

任何帮助都是非常感谢的。提前感谢!

更新:一些用户提醒我,我的问题可能不那么清楚。我已经在这里设置了一个CodePen (http://codepen.io/realph/pen/KjCLd?editors=101),它可以解释我想要实现的目标。

我怎么才能不重复三遍呢?

EN

回答 5

Stack Overflow用户

发布于 2014-07-21 16:32:24

您可以使用every测试每个元素是否满足某些条件:

代码语言:javascript
复制
if (names.every(function (name) { return name })) {
  // Do Something
}

当找到第一个非真元素时,every将自动停止测试,这可能是一个很大的优化,取决于数组的大小。

传统上,您只需遍历数组并测试每个元素。您可以使用forEach或简单的for循环来实现这一点。通过从false回调返回forEach,可以在找到非真元素时执行相同的早期终止。

代码语言:javascript
复制
var allTrue = true;

names.forEach(function (name) {
  return allTrue = allTrue && name;
});

if (allTrue) { 
  // Do something...
}
票数 1
EN

Stack Overflow用户

发布于 2014-07-21 16:32:15

请用英文描述一下你想要完成的事情。下面的答案假设您只是想迭代一个名称列表,并对每个名称进行一些处理。

您希望使用循环。

代码语言:javascript
复制
var names = ["beth", "barry", "debbie", "peter"]

for (var i=0; i<names.length; i++) {
    // access names[i]
}
票数 0
EN

Stack Overflow用户

发布于 2014-07-21 16:37:44

最好的跨浏览器解决方案是使用传统的for循环。

代码语言:javascript
复制
var names = ["beth", "barry", "debbie", "peter"],
    isValid = true,
    i;

for (i = 0; i < names.length; i++) {
    isValid = isValid && names[i];
}

if (isValid) {
    // do something
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24870066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档