gpt4 book ai didi

javascript - 比较 2 个数组以输出总整数

转载 作者:行者123 更新时间:2023-11-29 22:08:14 29 4
gpt4 key购买 nike

我有 2 个数字数组。我想遍历每个数组,找出每个数组中的 1 个数字加起来等于特定数量 x 的次数。

如果达到特定数量 x 的次数与另一组数字 n 的次数相同,则该函数应打印“YES”。如果 x 没有达到 n 的设定数量,那么函数应该打印“NO”。

xn 和两个数组的值都在字符串input 中。这些值已拆分为数组,如下面的代码所示。

我已经设置了 2 个 for 循环来遍历每个数组和一个 if 语句来检查 x 满足 的条件>n.

我在这段代码中使用的数组应该打印出"is"的结果,但是每次我运行代码时我都得到“否”?我试过修改代码,但没有任何效果。

知道这段代码哪里出了问题以及如何解决这个问题吗?

谢谢:)

代码:

var input = '2\n3 10\n2 1 3\n7 8 9';

function processData(input) {
var inputArray = input.split('\n');
var n = inputArray[1][0];
var x = inputArray[1].split(' ')[1];
var arrayA = inputArray[2].split(' ');
var arrayB = inputArray[3].split(' ');
var total = 0;

for(var i = 0; i < arrayA.length; i++) {
for(var j = 0; j < arrayB.length; j++) {
if(arrayA[i] + arrayB[j] == x) {
total = total + 1;
} if (total == n) {
return 'YES';
}
}
}
return 'NO';
}

console.log(processData(input));

最佳答案

arrayA[i]arrayB[j] 是字符串,所以 arrayA[i] + arrayB[j] 将是串联其中(例如:'2' + '3' === '23')。

如果您的逻辑是正确的(我不太明白您要做什么),那么在添加它们之前使用 parseInt 或其他方法将它们转换为数字就足够了:

if(+arrayA[i] + (+arrayB[j]) == +x) { // used unary + to convert to number
total = total + 1;
} if (total == n) {
return 'YES';
}

PS:更简洁的版本是将数组中的每个字符串都转换为数字,但这涉及的不仅仅是在代码中添加 3 个字符。

PS2:你获取输入数据的方式很奇怪。如果您从 JS 代码中的另一个地方获取它,您可以简单地将它作为具有相关结构的对象传递,否则您可以以更……通用的格式传递它,例如 JSON。

关于javascript - 比较 2 个数组以输出总整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19705844/

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