gpt4 book ai didi

javascript - 为什么使用 numeric.toString() 作为数组键会导致我的脚本卡住

转载 作者:行者123 更新时间:2023-12-03 04:04:02 24 4
gpt4 key购买 nike

我发现自己在做类似的事情:

function populateDueJob (unixTimeStamp, valueToPush) {
// note: this is a nested function so dueJobs is declared outside.
// it's declared as: let dueJobs = []
unixTimeStamp = unixTimeStamp.toString()
if (dueJobs.indexOf(unixTimeStamp) === -1) {
dueJobs.push(unixTimeStamp)
dueJobs[unixTimeStamp] = []
}

dueJobs[unixTimeStamp].push(valueToPush)
}

这使我能够拥有一个 unix 时间戳,并且只需使用索引查找即可获得所有到期的作业。但我发现,即使我调用 toString() ,索引也会被转换(?)/视为 int ,这会导致我的脚本卡住(我不是 100 %确定如何,它只是没有完成并导致 chrome 显示卡住的脚本对话框)。

为了解决这个问题,我做了 unixTimeStamp = 'idx_' + unixTimeStamp。这不是问题,但我想了解这种行为,以及我是否应该做一些不同的事情?

最佳答案

如果 dueJobs 是一个数组,则索引 setter [] 将在可能的情况下将参数视为整数(第一次推送到 dueJobs 似乎不需要)。如果转为对象,属性可以被视为字符串

var arr=  ['a'], obj = {0:'a'},prop = '1'; 

arr[prop] = 'b';
console.log(arr);

obj[prop] = 'b';
console.log(obj);

但是如果允许 ES6(似乎是这样,因为使用了 let), Map也可以使用。

关于javascript - 为什么使用 numeric.toString() 作为数组键会导致我的脚本卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44637691/

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