Javascript 如何根据某个Id向对象中插入值
我想根据对象内部的Javascript 如何根据某个Id向对象中插入值,javascript,Javascript,我想根据对象内部的id在对象中插入值 第一个目标: { "topics": [{ "id": 131, "topicId": "1485853106269", "title": "Topic Title", "details": "topic details", "username": "ki****@gmail.com", "userImage": "assets/img/spiritual
id
在对象中插入值
第一个目标:
{
"topics": [{
"id": 131,
"topicId": "1485853106269",
"title": "Topic Title",
"details": "topic details",
"username": "ki****@gmail.com",
"userImage": "assets/img/spiritual-icon4.png",
"dayPosted": "1/31/2017, 5:16:53 PM"
}, {
"id": 132,
"topicId": "1485863413654",
"title": "Check",
"details": "topic details",
"username": "ki****@gmail.com",
"userImage": "assets/img/spiritual-icon4.png",
"dayPosted": "1/31/2017, 5:20:13 PM"
}, {
"id": 133,
"topicId": "1485945328280",
"title": "New Topic",
"details": "Sample Topic",
"username": "ki****@gmail.com",
"userImage": "assets/img/spiritual-icon4.png",
"dayPosted": "2/1/2017, 4:05:28 PM"
}, {
"id": 134,
"topicId": "1485945483238",
"title": "New Topic2",
"details": "New Topic2",
"username": "ki****@gmail.com",
"userImage": "assets/img/spiritual-icon4.png",
"dayPosted": "2/1/2017, 4:08:03 PM"
}],
"role": "ROLE_ADMIN"
}
第二个目标:
{
"1485594764668": 1,
"1485853106269": 2,
"1485945483238": 1
}
我想根据匹配的属性“topicId”:“1485853106269”
将第二个对象的值插入第一个对象
例如:第一个对象中的“topicId”:“1485853106269”
的值与第二个对象中的一个键匹配,因此结果如下所示,具有附加值“count”:2
:
{
"id": 131,
"topicId": "1485853106269",
"title": "Topic Title",
"details": "topic details",
"username": "ki****@gmail.com",
"userImage": "assets/img/spiritual-icon4.png",
"dayPosted": "1/31/2017, 5:16:53 PM",
"count": 2 //ADDED here
}
每个循环都有一个简单的步骤:
obj.topics.forEach(item => item.count = counts[item.topicId])
每个循环都有一个简单的步骤:
obj.topics.forEach(item => item.count = counts[item.topicId])
var obj={“topics”:[{“id”:131,“topicId”:“1485853106269”,“title”:“Topic title”,“details”:“Topic details”,“userImage”:“ki****@gmail.com”,“userImage”:“assets/img/spirital-icon4.png”,“dayPosted”:“2017年1月31日,下午5:16:53”},{“id”:132,“topicId”:“1485863413654”,“title”:“Check”,“details”:“Topic”,“details”:“Topic”,“username”:“ki****@gmail.com”,“userImage”:“assets/img/spirital-icon4.png”、“dayPosted”:“2017年1月31日,下午5:20:13”},{“id”:133,“topicId”:“1485945328280”、“title”:“New Topic”、“details”:“Sample Topic”、“username”:“ki****@gmail.com”、“userImage”:“assets/img/spiritial-icon4.png”、“dayPosted”:“2017年2月1日,下午4:05:28”},{“id”:134,“topicId”:“1485945483238”、“title”:“New Topic2”、“details”:“New Topic2”、“detail2”、“New Topic2”、“New Topic2”、“New用户名“:“ki****@gmail.com”,“userImage:“assets/img/spiritial-icon4.png”,“dayPosted:“2017年1月2日,下午4:08:03”}],“role:“role_ADMIN”};
var countObj={
"1485594764668": 1,
"1485853106269": 2,
"1485945483238": 1
};
对象主题forEach(函数(o){
var c=countObj[o.topicId];
如果(c!==未定义)
o、 计数=c;
});
console.log(obj);
var obj={“topics”:[{“id”:131,“topicId”:“1485853106269”,“title”:“Topic title”,“details”:“Topic details”,“userImage”:“ki****@gmail.com”,“userImage”:“assets/img/spirital-icon4.png”,“dayPosted”:“2017年1月31日,下午5:16:53”},{“id”:132,“topicId”:“1485863413654”,“title”:“Check”,“details”:“Topic”,“details”:“Topic”,“username”:“ki****@gmail.com”,“userImage”:”assets/img/spiral-icon4.png,“dayPosted”:“2017年1月31日,下午5:20:13”},{“id”:133,“Topicd”:“1485945328280”,“title”:“新主题”,“详细信息”:“示例主题”,“用户名”:“ki****@gmail.com”,“userImage”:“assets/img/spiral-icon4.png”,“dayPosted”:“2017年2月1日,下午4:05:28”},{“id”:134,“Topicd”:“1485945483238”,“title”:“新主题2”,“详细信息”:“新Topic2”,“新主题2”用户名“:“ki****@gmail.com”,“userImage:“assets/img/spiritial-icon4.png”,“dayPosted:“2017年1月2日,下午4:08:03”}],“role:“role_ADMIN”};
var countObj={
"1485594764668": 1,
"1485853106269": 2,
"1485945483238": 1
};
对象主题forEach(函数(o){
var c=countObj[o.topicId];
如果(c!==未定义)
o、 计数=c;
});
console.log(obj);
您尝试了什么?但理论是循环遍历您的对象和第二个对象属性检查是否有匹配项,如果匹配项,则添加值;)。下面是如何循环遍历对象属性:对于第二个对象,我可以执行For(输入对象)
对于第一个对象,forEach
但无法找出如何混合这两个对象以获得所需的结果。您尝试了什么?但理论是循环遍历您的对象和第二个对象属性检查是否有匹配项,如果匹配项,则添加值;)。下面是如何循环遍历对象属性:对于第二个对象ct,我可以为(输入对象)执行
和forEach的第一个对象result@Andreas你确定吗?我已经写过很多次同样的代码了。@Andreas哎呀。我忘了返回prev
-不管怎样,OP已经有了count对象,所以它是不必要的。你应该检查是否计数[item.topicId]
首先存在。这可以将未定义的分配为项.count
。“我想根据匹配属性将第二个对象的值插入第一个对象"->No match=Nocounts
对照undefined
检查属性是检查属性是否存在的正确方法。在这个问题的上下文中,如果没有必要,OP可以从中学习。@Andreas你确定吗?我已经写了很多次同样的代码。@Andreas哎哟!我忘了返回prev
-不管是哪种方式,OP已经有了count对象,因此它是不必要的。您应该首先检查counts[item.topicId]
是否存在。这可以将undefined
指定为item.count
。“我想根据匹配的属性将第二个对象的值插入第一个对象”->No match=Nocounts
根据未定义的
检查属性是检查属性是否存在的正确方法。如果在这个问题的上下文中没有必要,OP可以从中学习。谢谢易卜拉欣·马赫里尔。谢谢易卜拉欣·马赫里尔。