如何在Angular 6中获取组件内部的json数组大小

如何在Angular 6中获取组件内部的json数组大小,angular,typescript,Angular,Typescript,我在angular 6项目中工作,这里我需要获得来自API响应的数组大小 在检查从API调用收到的数据时,我可以在控制台中看到数组大小为3。我不知道如何在组件变量中获取数组大小 ngOnInit() { this.CartdataService.get_Basic_Images().subscribe( data => { this.get_Carousel_Images = data['1'].filter((img, i) => i !== 0

我在angular 6项目中工作,这里我需要获得来自API响应的数组大小

在检查从API调用收到的数据时,我可以在控制台中看到数组大小为3。我不知道如何在组件变量中获取数组大小

ngOnInit() {
    this.CartdataService.get_Basic_Images().subscribe(
      data => {
        this.get_Carousel_Images = data['1'].filter((img, i) => i !== 0);
        this.slider_Active_Item = data[1][0]['CAROUSEL_IMAGE_PATHS'];
        console.log(data) // how to get the array size here
      });
  }
链接:


谢谢

声明属性
大小:数字

然后编辑为Sanoj_V,以这种方式编辑函数

 ngOnInit() {
   this.CartdataService.get_Basic_Images().subscribe(
      (data:any) => {
        this.size= data.length;
        this.get_Carousel_Images = data['1'].filter((img, i) => i !== 0);
        this.slider_Active_Item = data[1][0]['CAROUSEL_IMAGE_PATHS'];
      });
  }
现在您的
size
属性具有长度

如果您确定您的数据总是有一个长度,那么它是可以的,否则您应该检查它是否是定义的。类似这样的情况,以防万一:

if(!!data.length){
   this.size = data.length;
}

您可以使用
任何
类型

ngOnInit() {
        this.CartdataService.get_Basic_Images().subscribe(
          (data:any) => {
            this.get_Carousel_Images = data['1'].filter((img, i) => i !== 0);
            this.slider_Active_Item = data[1][0]['CAROUSEL_IMAGE_PATHS'];
            console.log(data.length) // how to get the array size here
          });
      }

如果出现编译时错误,则必须使用此方法data['length']来使用对象

现在就这样更改代码,它可以编译而不出错

get_Carousel_Images :string;
slider_Active_Item :string;
  ngOnInit() {
   this.CartdataService.get_Basic_Images().subscribe(
      data => {
console.log(data['length']);
        this.get_Carousel_Images = data['1'].filter((img, i) => i !== 0);
        this.slider_Active_Item = data[1][0]['CAROUSEL_IMAGE_PATHS'];
      });
  }

}

也许打字对你有帮助。 我将创建一个单一基本映像的接口,然后告诉Typescript,订阅需要这些映像的数组

interface BasicImages{
// details about one Basic Image
}

this.CartdataService.get_Basic_Images().subscribe(
  (imageList:BasicImages[] => {
    // Do some magic things here
    console.log(imageList.length)
  });
这有多方面的帮助。
它使代码更具可读性,静态代码分析将在传输时发现一些错误。

console.log(data.length)
get此错误[ts]类型“Object”上不存在属性“lenght”@Sanoj_v得到了输出,但我也得到了错误是控制台作为错误类型错误:无法读取nullcheck的属性'length'此链接工作正常我已经检查过了,它在那里工作,但不在我的项目中在您的项目中获得了什么样的数据在stackblitz中工作,但在项目中“[ts]类型“Object”上不存在属性“length”。出现此错误我在放置后找不到长度。在数据“data.length”之后\n您是否将数据:any放入订阅中?能否请您进行公开回购,以便我可以克隆并处理它?