JS for loop in for loop, problem with scope I guess(JS for循环中的for循环,我猜是作用域问题)
本文介绍了JS for循环中的for循环,我猜是作用域问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
输入是数组INTS[11,2,7,8,4,6]和整数s 10,函数是输出一个数组,数组中的两个数字来自整型数,这两个数的和首先是10。所以这里的输出应该是[2,8],因为2+8=10。为什么它输出空数组?ArrResults是在嵌套的for循环中更新的,那么它为什么不像这样显示在最后一个返回语句之后呢? 数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
function sumPairs(ints, s) {
let arrResults = [];
let sumOfTwo;
for (i = 0; i < ints.length; i++) {
for (j = 0; j < ints.length; j++) {
sumOfTwo = ints[i] + ints[j];
if (sumOfTwo === s) {
arrResults.push(ints[i]);
arrResults.push(ints[j]);
break;
}
}
if (arrResults !== []) {
break;
}
}
return arrResults;
}
console.log(sumPairs([11, 2, 7, 8, 4, 6], 10));
推荐答案
一个数组与另一个数组的比较错误(没有相同的对象引用)
a = []
b = []
a === b // false
// other example
a = []
b = a
a === b // true
用于检查长度,
a = []
a.length // 0
即使在使用循环的情况下,也可以使用几乎是二次的n?时间复杂度
i = 0; i < array.length - 1
j = i + 1; j < array.length
哪个大于n的一半,但为二次
您可以对已看到值的对象进行单循环。
此方法查找特定和的数组的第一对。
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">function sumPairs(ints, s) {
const needed = {};
for (const value of ints) {
if (needed[value]) return [s - value, value];
needed[s - value] = true;
}
}
console.log(sumPairs([11, 2, 7, 8, 4, 6], 10));
这篇关于JS for循环中的for循环,我猜是作用域问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:JS for循环中的for循环,我猜是作用域问题


猜你喜欢
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Fetch API 如何获取响应体? 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01