gpt4 book ai didi

Javascript for循环和if语句计数器变量范围

转载 作者:行者123 更新时间:2023-11-30 20:23:32 25 4
gpt4 key购买 nike

function analyse(data) {
var counter = 0;
for (let i = 0; i < data.length; i++) {
if (data[i].closed == true) {
counter++;
}
}
$scope.totalOpen = data.length - counter;
$scope.totalClosed = counter;
}

我正在编写一个简单的函数来迭代数组并递增 counter如果数组值内的对象为真。但是,看起来像 counter if 内的变量语句与 counter 的作用域不同for 上方的变量环形。因此,totalClosed即使有一些对象已关闭为 true,变量也只会被赋值为零.我想我没有正确理解 Javascript 中范围界定的概念。有谁能帮帮我吗?

最佳答案

要建立在@Taplar 的旁注上,您可以使用过滤器更干净地实现此目标:

function analyse(data) {
var closedItems = data.filter(function (item) { return item.closed });
var totalClosed = closedItems.length;
var totalOpen = data.length - totalClosed;
console.log(totalOpen)
console.log(totalClosed)
}

或者,在 ES6 语法中:

const analyze = (data) => {
const closedItems = data.filter(item => item.closed);
const totalClosed = closedItems.length;
const totalOpen = data.length - totalClosed;
return {totalOpen, totalClosed}
}

关于Javascript for循环和if语句计数器变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com