【问题标题】:Can't add objects in array Angular无法在数组 Angular 中添加对象
【发布时间】:2018-11-21 08:29:52
【问题描述】:

我有从 oracle 数据库中检索表的 Java 服务,我想在 Angular 应用程序中显示结果,我在 Angular 中有一个对象数组:

resultSet:Info[]=[];

服务:

 pastHourInfo() {
        const url='/SearchApp-1.0/users/transaction';
        return this.http.get(url).pipe(map((data:any)=>data));
    }

这是我的服务订阅:

checkPasHourInfo() {
        this.searchService.pastHourInfo().subscribe(data => {
            console.log("we got: ",data);
            this.resultSet.push(data);
            console.log(this.resultSet.length);
        },
        error => {
          console.log("Error",error);

    },);

问题是下一个。结果是 77 行。 console.log("we got: ",data) 给出正确的结果。 you cans see it here

console.log(this.resultSet.length); 在必须为 77 时打印“1”。

有什么问题?

【问题讨论】:

  • 您是在尝试将数组推入数组吗?
  • 您正在将数组推入数组。只需像这样替换它:this.resultSet = data; 而不是 this.resultSet.push(data);

标签: arrays angular object


【解决方案1】:

从您的屏幕截图看来,您正在将array 推送到您的结果array 中,您可以将数据传播到数组中:

this.resultSet.push(...data);

【讨论】:

    【解决方案2】:

    您正在将一个数组推入一个数组。所以你的数组看起来像这样

    resultSet[].length = 1;
    resultSet[0].length = 77;
    

    而不是做:

    this.resultSet.push(data);
    

    试试这个:

    this.resultSet.concat(data);
    

    参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat

    【讨论】:

      【解决方案3】:

      您可以将数组添加到另一个数组中,如下所示:

      this.resultSet.concat(data)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-21
        • 1970-01-01
        • 1970-01-01
        • 2012-03-28
        • 2020-05-23
        相关资源
        最近更新 更多