gpt4 book ai didi

javascript - 相同数组不同结果

转载 作者:行者123 更新时间:2023-11-30 09:15:27 24 4
gpt4 key购买 nike

脚本标签中的函数closest,查找最接近112 的数字。但是,当我在来自 ajax 请求的相同数组上使用相同的函数时,它给出了错误的结果。

控制台日志 1:本地 array 产生正确的结果 122

控制台日志 2:外部 array2 显示与本地相同。

控制台日志 3:使用外部数组导致左括号。从 gist 中删除括号会导致 8,这仍然是不正确的。

JSFiddle

function loadgist(gistid, filename)
{
$.ajax({
url: 'https://api.github.com/gists/' + gistid,
type: 'GET',
dataType: 'jsonp'
}).success(function(gistdata) {
var content = gistdata.data.files[filename].content;
DoSomethingWith(content)
}).error(function(e) {
// ajax error
});
}

function DoSomethingWith(content)
{
number = 112;
var array2 = (content);
console.log(content);
console.log(closest(number, array2));
}

loadgist("9544dfd755418e819810312488e7986c", "gistfile1.txt");
<script src=https://code.jquery.com/jquery-1.9.1.js></script>
<script language="javascript">

function closest(num, arr)
{
var curr = arr[0];
var diff = Math.abs (num - curr);

for (var val = 0; val < arr.length; val++)
{
var newdiff = Math.abs (num - arr[val]);

if (newdiff < diff)
{
diff = newdiff;
curr = arr[val];
}
}

return curr;
}

array = [2, 42, 82, 122, 162, 202, 242, 282, 322, 362];
number = 112;
console.log(closest (number, array));

</script>

最佳答案

如果您在方法 DoSomethingWith(...) 中添加 console.log(typeof content) 您会注意到内容不是 array,而是一个 string。所以使用 JSON.parse()string 中获取一个 array,像这样:

function DoSomethingWith(content)
{
let number = 112;
let array2 = JSON.parse(content);
console.log(content);
console.log(closest(number, array2));
}

关于javascript - 相同数组不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55466575/

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