gpt4 book ai didi

javascript - for(x in X) 失败,但完整写出成功

转载 作者:行者123 更新时间:2023-12-03 09:25:57 25 4
gpt4 key购买 nike

这真是令人烦恼。从下面的代码注释可以看出,干净的方式失败了,而困惑的方式成功了。

但是困惑的方式肯定会在幕后做干净的方式所做的事情。

但显然有些东西一定是不同的!

发生什么事了?

function onSuccess( access ) 
{
log("requestMIDIAccess -- granted!");

midiAccess = access; // for persistence over closure

var inputs = midiAccess.inputs;
var gotOne = false;

if (inputs.length === 0)
log( "No MIDI inputs detected. Maybe reload Chrome THEN connect?" );
else {

// var inputs = midiAccess.inputs.values(); // A WORKS
// for ( var input = inputs.next(); input && !input.done; input = inputs.next())

for ( input in midiAccess.inputs.values() ) // B FAILS
{
input.value.onmidimessage = myMIDIMessagehandler;
gotOne = true;
}
if( ! gotOne ) log( "Need at least one MIDI input" );

}

编辑:现在使用for..ofvar input,但仍然失败。

编辑:我正在使用https://github.com/cwilso/WebMIDIAPIShim -- 这就是 access 对象的来源。

最佳答案

for..in 语句以任意顺序迭代对象的可枚举属性。可能不是你想要的

它看起来像 midiAccess.inputs.values();是ES6迭代器吗?如果是这种情况,您也许可以使用

for (var input of midiAccess.inputs.values())

关于javascript - for(x in X) 失败,但完整写出成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664712/

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