Javascript 从对象集中获取三个值
在尝试了许多事情之后,我得出了一个结论,我可能只是没有正确看待这个问题。所以我决定在这里提问 我正在尝试获取用户的Javascript 从对象集中获取三个值,javascript,object,Javascript,Object,在尝试了许多事情之后,我得出了一个结论,我可能只是没有正确看待这个问题。所以我决定在这里提问 我正在尝试获取用户的\u id,在该对象内部还有一个访问选项卡,我需要postId和访问帐户 以下是我的尝试: this.analyticsService.getClicks(); this.userClicksSub = this.analyticsService .getUserAnalyticsClicks() .subscribe((userClicks: Cli
\u id
,在该对象内部还有一个访问
选项卡,我需要postId
和访问帐户
以下是我的尝试:
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)代码>给了我以下信息:
难以访问用户访问选项卡值
我有一个表格,需要填入结果:
{{userclick.\u id}}
{{userclick.postId}}
{{userclick.visitCount}}
它将遍历结果并相应地显示它们。由于存在嵌套数组,因此需要迭代两次
this.userClicks.forEach(function(item){
item.user.visit.forEach(function(elem){
console.log(elem.visitCount)
})
})
由于存在嵌套数组,因此需要迭代两次
this.userClicks.forEach(function(item){
item.user.visit.forEach(function(elem){
console.log(elem.visitCount)
})
})
在for循环中,可以使用以下方法解决问题:
item.user.visit[whatever index you want]._id
在for循环中,可以使用以下方法解决问题:
item.user.visit[whatever index you want]._id
我相信你只需要在浏览嵌套的值时感觉更舒服一点
有两种东西可以嵌套更多的值:数组
,和对象
。当跳入数组时,您提供了一个数字索引:arr[12]
将导致数组中的第13个值(因为基于0的索引)。当深入到对象时
通常可以使用点表示法:obj.innerProperty
提供了obj
的“innerProperty”
您正在处理的根对象,this.userClicks
,是一个数组
。因此,如果要访问内部项,需要指定数字索引;e、 g.this.userClicks[2]
。我看到您尝试了此操作。userClicks['visions']
,这将不起作用,因为此操作。userClicks
没有“visions”属性;在中插入每个项目。userClicks
具有您要查找的“访问”属性
如果要将相同的操作应用于this.userClicks
中的所有项目,则需要使用某种循环
例如,一个简单的for循环:
for (let i = 0; i < this.userClicks.length; i++) {
let currentClick = this.userClicks[i];
// do something with `currentClick`
}
我相信你只需要在浏览嵌套的值时感觉更舒服一点
有两种东西可以嵌套更多的值:数组
,和对象
。当跳入数组时,您提供了一个数字索引:arr[12]
将导致数组中的第13个值(因为基于0的索引)。当深入到对象时
通常可以使用点表示法:obj.innerProperty
提供了obj
的“innerProperty”
您正在处理的根对象,this.userClicks
,是一个数组
。因此,如果要访问内部项,需要指定数字索引;e、 g.this.userClicks[2]
。我看到您尝试了此操作。userClicks['visions']
,这将不起作用,因为此操作。userClicks
没有“visions”属性;在中插入每个项目。userClicks
具有您要查找的“访问”属性
如果要将相同的操作应用于this.userClicks
中的所有项目,则需要使用某种循环
例如,一个简单的for循环:
for (let i = 0; i < this.userClicks.length; i++) {
let currentClick = this.userClicks[i];
// do something with `currentClick`
}
请尝试下一步:
var-infos=userClicks.map(user=>user.visions.map({u-id,postId})=>({id:{u-id,postId}))).reduce((result,currentValue)=>result.concat(currentValue),[])代码>
infos.forEach(info=>console.log(${info.id}${info.postId}${info.visitCount}
)请尝试下一步:
var-infos=userClicks.map(user=>user.visions.map({u-id,postId})=>({id:{u-id,postId}))).reduce((result,currentValue)=>result.concat(currentValue),[])代码>
infos.forEach(info=>console.log(${info.id}${info.postId}${info.visitCount}
)哪个用户?有3个??是的,最终会有加载,我只需要提取访问过某个页面的用户,等等,哪个用户?有3个??是的,最终会有加载,我只需要提取访问过某个页面的用户等。当我记录currentClick时,它会重复值x3,因为有3个不同的对象,这正常吗?不要认为它会“重复”值3次!相反,可以将this.userClicks
视为一个单独的“东西”,其中包含3个以上的东西。我想你期待的是这个。userClicks
是一个“点击”的表示,而实际上它是一系列点击的表示。好的,我明白了,那么我如何保存我需要的三个特殊值呢?你想获得“\u id”、“postId”和“visitCount”。问题是,每个值都有几个实例:有一系列的“点击”,该系列中的每个“点击”都有一系列的“访问”。然后,对于该系列中的每次访问,您都要寻找3个值。您需要知道单击的索引和访问的索引,才能谈论特定的3个值。例如,如果您知道clickIndex
和visitIndex
,则可以说let specificVisitOfSpecificClick=this.usersClicks[clickIndex].user.visitIndex[visitIndex]
。现在您可以讨论specificVisitoSpecificClick.\u id
,specificVisitoSpecificClick.visitCount
,等等。当我记录当前单击时,它会重复值x3,因为有3个不同的对象,这正常吗?不要将其视为“重复”值3次!相反,可以将this.userClicks
视为一个单独的“东西”,其中包含3个以上的东西。我想你期待的是这个。userClicks
是一个“点击”的表示,而实际上它是一系列点击的表示。好的,我明白了,那么我如何保存我需要的三个特殊值呢?你想获得“\u id”、“postId”和“visitCount”。问题是,有