尝试了多种方法后,我得出的结论是我可能只是没有以正确的方式看待这个问题。所以我决定在这里问。
我正在尝试获取用户的_id
,并且在该对象的内部还有一个visits
标签,我需要postId
和visitCount
。
这些是我的尝试:
this.analyticsService.getClicks();
this.userClicksSub = this.analyticsService
.getUserAnalyticsClicks()
.subscribe((userClicks: Clicks[]) => {
this.userClicks = userClicks;
console.log(this.userClicks);
// const visits = this.userClicks['visits'];
// console.log(visits);
// for (const item of this.userClicks) {
// const visits = item.visitCount;
// const visits = item.visitCount['visits'];
// const visits = item['visits'];
// const postId = visits[i]['postId'];
// console.log(item['visitCount']);
// }
// this.userId.push(this.userClicks);
// console.log(this.userId);
// console.log(this.userId.user[1]);
// console.log(this.userClicks.user.user); //
// console.log('test', this.userClicks[2]);
});
console.log(this.userClicks);
给了我这个:
正在努力访问用户的访问标签值。
我有此表,需要用结果填充:
<th>{{ userclick._id }}</th>
<th>{{ userclick.postId }}</th>
<th>{{ userclick.visitCount }}</th>
它将遍历结果并相应显示。
答案 0 :(得分:2)
我相信您在嵌套值潜水时只需要多一点安慰!
有两个可以嵌套更多值的东西:Array
和Object
。深入研究Array
时,您将提供一个数字索引:arr[12]
将导致Array
中的第13个值(由于从0开始的索引)。深入研究Object
时,通常可以使用点符号:obj.innerProperty
为您提供obj
的“ innerProperty”。
您要处理的根对象this.userClicks
是Array
。因此,如果要访问内部项目,则需要指定一个数字索引。例如this.userClicks[2]
。我发现您已尝试执行this.userClicks['visits']
,但由于this.userClicks
没有“ visits”属性,该方法无法正常工作。 intead this.userClicks
中的每个项目都具有您要查找的“ visits”属性。
如果要将相同的操作应用于this.userClicks
中的所有项目,则需要使用某种循环。
例如一个简单的for循环:
for (let i = 0; i < this.userClicks.length; i++) {
let currentClick = this.userClicks[i];
// do something with `currentClick`
}
例如声明式forEach
:
this.userClicks.forEach(currentClick => {
// do something with `currentClick`
});
答案 1 :(得分:1)
由于存在嵌套数组,您需要迭代两次
module AddEight(A, B, Cin, Cout, Sum);
output Cout;
output [7:0] Sum;
input Cin;
input [7:0] A, B;
wire c0, c1, c2, c3, c4, c5, c6;
adder A0 (Sum[0], Cin, A[0], B[0], c0);
adder A1 (Sum[1], Cin, A[1], B[1], c1);
adder A2 (Sum[2], Cin, A[2], B[2], c2);
adder A3 (Sum[3], Cin, A[3], B[3], c3);
adder A4 (Sum[4], Cin, A[4], B[4], c4);
adder A5 (Sum[5], Cin, A[5], B[5], c5);
adder A6 (Sum[6], Cin, A[6], B[6], c6);
adder A7 (Sum[7], Cin, A[7], B[7], Cout);
endmodule
module adder(output Sum, input Cin, A, B);
// adder
assign Sum = A ^ B ^ Cin;
assign Cout = (A & B) | (B & Cin) | (A & Cin);
endmodule
答案 2 :(得分:0)
在您的for循环中,您可以使用以下方法解决问题:
item.user.visit[whatever index you want]._id
答案 3 :(得分:0)
再试一次:
var infos = userClicks.map(user => user.visits.map(({_id, postId}) => ({id: _id, postId}))).reduce((result, currentValue) => result.concat(currentValue), []);
infos.forEach(info => console.log(<th>${info.id}</th><th>${info.postId}</th><th>${info.visitCount}</th>
))