javascript push()to使用构造函数生成的数组导致致命错误(与文本数组一起使用时效果良好)

txu3uszq  于 2022-12-28  发布在  Java
关注(0)|答案(2)|浏览(87)

这个代码给了我一个奇怪的错误。有人知道哪里出错了吗?
我可以推送项,但不能在for循环中推送。适用于使用Literal Syntax = []创建的数组,在使用arr2[i] = 5而不是.push()方法填充时也适用

const arr2 = Array(10);

for(let i = 0; i < arr2.length ; i++)
{
    arr2.push(5)
}

#
# Fatal error in , line 0
# Fatal JavaScript invalid size error 144998948
#
#
#
#FailureMessage Object: 00000009F4FFE470
 1: 00007FF6F1291B7F node_api_throw_syntax_error+203775
 2: 00007FF6F11A2B2F v8::CTypeInfoBuilder<void>::Build+11951
 3: 00007FF6F2012CF2 V8_Fatal+162
 4: 00007FF6F1B54A55 v8::internal::FactoryBase<v8::internal::Factory>::NewFixedArray+101
 5: 00007FF6F19D9D43 v8::internal::FeedbackNexus::ic_state+64883
 6: 00007FF6F19F8650 v8::debug::Script::GetIsolate+14064
 7: 00007FF6F18453B0 v8::internal::CompilationCache::IsEnabledScriptAndEval+25952
 8: 00007FF6F1D51E81 v8::internal::SetupIsolateDelegate::SetupHeap+558193
 9: 00007FF671E8EC86
klr1opcd

klr1opcd1#

您正在使用条件“i〈arr2.length”推入正在迭代的同一个列表,这意味着它将永远运行,并将增长到无限

wlzqhblo

wlzqhblo2#

arr2.length以10开头
每次调用push时,都要添加一个元素并增加arr2.length
arr2.length达到144998948时,进程将抛出错误

相关问题