gpt4 book ai didi

javascript - 循环数组,并添加值以启动 Javascript

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

我需要做的 - 简单的任务 - 我正在循环数组。当 array[i] === 0;我想 +1start,对于 array[i] === 1 也是一样的。但是当 array[i] 返回时(回到刚才的位置)我不想 +1start ,我做了那个代码:

var start = 0;
var array = [0,1,0,0,1,0,0,1];
for (i=0; i < array.length; i ++) {
if (array[i] === 0) {
start += 1;
if (array[i + 1] === 1) {
start -= 1;
}
}
else if (array[i] === 1) {
start += 1;
if (array[i + 1] === 0) {
start -= 1;
}
}
}
console.log(start)

但是如果 array = [0,1,1,1,0,0,0,1,0,0,0,1]; ,如果 array[i] 会回到很久以前的地方吗?我不希望 +1start

想象 01 就像图表上的 -1+1,所以 console。 array = [0,1,1,1,0,0,0,1,0,0,0,1] 的 log(start) 应该是 5。

我的代码是某种硬编码,您有解决办法吗?提前感谢您的回答!

来自评论的例子

[0,1,1,1,0,0,0,1,0,0,0,1] 应该产生结果 5;你需要想象 0 == -11 == +1

然后数组看起来像 [-1,+1,+1,+1,-1,-1,-1,+1,-1,-1,-1,+1] 从 0 开始,我们有 5 个位置,我只有 1 次。

最佳答案

看起来,您需要计算数组中值的变化。您需要存储最后一个值以检查下一个值。如果最后一个值和实际值不同,你得到了一个变化,需要计数。

function getChanges(array) {
var count = 0,
last = array[0],
i;

for (i = 1; i < array.length; i++) {
if (last !== array[i]) {
count++;
last = array[i];
}
}
return count;
}

console.log(getChanges([0, 1, 0, 0, 1, 0, 0, 1]));
console.log(getChanges([0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1]));

关于javascript - 循环数组,并添加值以启动 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52953781/

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