需要通过具有对象VUE的数组进行迭代



我有一个数组列表,每个列表都是对象组。我需要迭代每个组,并检查列表中的对象是否满足条件。

这就是能够做的,但是,并没有通过每个对象迭代。

 for (i = 1; i <= this.portfolioDetails.length; i++) {
    for (var j = 1; j < this.portfolioDetails[i].length; j++) 
    {
       console.log(portfolioDetails[i][j]);
    }
 }

这是数组对象的列表:

portfolioDetails:Array[3]
    0:Object
      ACCOUNTID:"S1001"
      ACCOUNTNAME:"Bla bla bla"
      ACCRUEDINTERESTALL:0
      PRICE:0.69
      UNITS:60.49
      VALUE:41.98
      product:null
    1:Object
      ACCOUNTID:"S1002"
      ACCOUNTNAME:"blo bla blo"
      ACCRUEDINTERESTALL:0
      PRICE:0.69
      UNITS:60.49
      VALUE:41.98
      product:null
    2:Object
      ACCOUNTID:"S1003"
      ACCOUNTNAME:"blik blik blik"
      ACCRUEDINTERESTALL:0
      PRICE:0.69
      UNITS:60.49
      VALUE:41.98
      product:null

这是简单的JavaScript,与Vuejs本身无关。您的迭代不起作用的原因是,您从i = 1开始编码时,从索引开始。此外,您还将最后一个数字与不在数组中的比较语句<=一起包含(因为您开始在0处计数,不是1(。最重要的是,您可以通过其键打印出对象值。这一切加起来:

for (let i = 0; i < this.portfolioDetails.length; i++) {
    console.log(this.portfolioDetails[i].ACCOUNTID)
}

您的顶环迭代应看起来像:

for (i = 0; i < this.portfolioDetails.length; i++) { ... }

此代码应起作用:

for (let i = 0; i < this.portfolioDetails.length; i--) {
  for (let j = 0; j < this.portfolioDetails[i].length; j--) 
  {
    // Check conditions here
    if (this.portfoiloDetails[i][j].ACCOUNTID === 'S1002') { 
     // Actions goes here
    }
  }
}

嗨,给定的数组对象的给定列表尚不清楚,但是如果您尝试通过JSON数据类型迭代,则可以使用以下代码。此代码动态发现属性并返回每个属性的值。

<script>
    var portfolioDetails = { 'data': [ 
         { 'fname': 'joe', 'lname': 'smith', 'number': '34'} , 
         { 'fname': 'jim', 'lname': 'Hoff', 'number': '12'} , 
         { 'fname': 'jack', 'lname': 'jones', 'number': '84'}   
    ] };
    //iterate over the records
    for (i = 0; i < portfolioDetails["data"].length; i++) {
       var data = this.portfolioDetails["data"][i];
       var propertiesCount = Object.getOwnPropertyNames(data).length;
       //iterate over the properties of each record
       for (var j = 0; j < propertiesCount; j++) 
       {
           var propName = Object.getOwnPropertyNames (data)[j];
           console.log(portfolioDetails["data"][i][propName]);
       }
       }
</script>

最新更新