我有一个数组列表,每个列表都是对象组。我需要遍历每个组,并检查列表中的对象是否满足条件。
这是我们能够做的,但是并不会遍历每个对象。
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
答案 0 :(得分:1)
这是简单的JavaScript,与VueJS本身无关。迭代无法正常工作的原因是,您从i = 1
开始,而在编码中,索引从0开始。而且,您在比较语句<=
中包含了最后一个数字,该数字不在数组(因为您从0开始计数,而不是从1开始计数)。最重要的是,您只需按对象的键即可打印出对象值。所有这些加起来就是这样:
for (let i = 0; i < this.portfolioDetails.length; i++) {
console.log(this.portfolioDetails[i].ACCOUNTID)
}
答案 1 :(得分:0)
您的顶部循环迭代应如下所示:
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
}
}
}
答案 2 :(得分:0)
嗨,给定的数组对象列表尚不清楚,但是如果您要遍历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>