我知道在javascript中,1的计算结果为true,而0的计算结果为false .
我的问题是关于javascript中的 while 循环,格式如下:
while (condition) {
code block to be executed
}
如果我传递一个整数作为while循环的条件,代码如何运行?更具体地说,这是我在发布此问题之前正在处理的代码:
function chunkArrayInGroups(arr, size) {
var newArr = [];
while (arr.length) {
newArr.push(arr.splice(0,size));
}
return newArr;
}
chunkArrayInGroups([0, 1, 2, 3, 4, 5], 2);
并且它似乎工作得非常好,通过将原始数组( arr )除以所需的时间( size )和 push 将其分配给newArr,以我需要的方式返回 newArr .
如何评估条件 arr.length ?我的假设是,只要它不为零,即只有非零数,它就会评估为真,尽管它不是i <2之类的比较 .
这个练习来自freeCodeCamp:Chunky Monkey
3 回答
是的
是的,你是绝对正确的,它评估为真,而
arr
有一个长度,因为arr.length
是> 0
所以被认为是真的 . 它是javascript
的一个简洁功能,但它不具有可读性(如您所见),因此可能会让任何不习惯它的人感到困惑 . 但是,如果你自己编码,这是一个聪明的小功能!任何非
0
的数字的计算结果为true
.0
评估为false
.所以,你的代码将一直运行,直到
arr.length
等于0
- 它与while (arr.length!=0)
相同如果你正在评估数组的长度属性,那么直到数组不为空(长度不为0)才会成立 . 当数组为空(长度为0)时,评估将返回false .