Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Typescript中字符串化循环对象?_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 如何在Typescript中字符串化循环对象?

Javascript 如何在Typescript中字符串化循环对象?,javascript,angular,typescript,Javascript,Angular,Typescript,我正在尝试在我的typescript中字符串化一个循环对象。以下是我的原始代码和错误: app.component.ts: updateList(list: any) { this.demolist = Array.apply(this, list); console.log('List - ' + JSON.stringify(this.demolist)); } TypeError:循环对象值 然后,我在updateList()方法中尝试了以下代码: 但现在我得到了这个错误

我正在尝试在我的typescript中字符串化一个循环对象。以下是我的原始代码和错误:

app.component.ts:

updateList(list: any) {
    this.demolist = Array.apply(this, list);
    console.log('List - ' + JSON.stringify(this.demolist));
}
TypeError:循环对象值

然后,我在updateList()方法中尝试了以下代码:

但现在我得到了这个错误:

TypeError:toISOString属性不可调用

有人能告诉我需要做什么更改才能显示我的this.listBase的内容吗

这是我的HTML:

<upload #fileUpload (listChange)="updateList($event)" data-kind="primary" restrictFiles=".pdf,.doc,.docx">
</upload>

<list #listBase [IncludeComponent]="inputComponent" [list]="demolist">    
</list>

您收到的错误:

TypeError:toISOString属性不可调用

意味着在某个地方调用了某个对象的名为toISOString的属性,就好像它是一个方法一样。e、 g:

someObj.toISOString();
Javascript中已知的唯一内置并命名为
toISOString
的方法是
Date.prototype.toISOString

stringify()知道一些标准值类型以及如何将它们转换(序列化)为字符串。它通常通过对它们调用expected to exist
toString()
方法来实现这一点。它还知道
Date
对象有一个
toISOString()
方法,并在找到该方法时调用该方法。因此,在本例中,我假设
JSON.stringify()
this.demoList
中遇到一个对象,该对象虽然属于
Date
类型,但它有一个定义的属性名为
toISOString
(而不是方法),该属性覆盖了现有的
Date.protoisostring.toISOString()
,在这一点上,它试图调用它作为一个方法,你会得到这个错误


我无法猜测在您的特定情况下,哪个对象是此对象,因此我建议您使用浏览器的开发人员工具逐个检查
this.demoList
中的所有对象(及其子对象),并找出哪个对象是“有问题的”对象。

如果您显示发生此错误的代码,将非常有用。。。有关更多信息,请查看构成a的内容。我现在猜测您正在对
Date
对象执行一些奇怪的操作。@jcalz
JSON.stringify(this.listBase)
是发生第一个错误的地方,因为它试图序列化循环对象
console.log(JSON.stringify(this.listBase,getCircularReplacer())是新错误发生的地方。我不确定您遇到的错误是否与替换函数直接相关,但可能与列表中的内容有关。你能举一个这个.demoList的例子吗?
someObj.toISOString();