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=No
counts
对照
undefined
检查属性是检查属性是否存在的正确方法。在这个问题的上下文中,如果没有必要,OP可以从中学习。@Andreas你确定吗?我已经写了很多次同样的代码。@Andreas哎哟!我忘了
返回prev
-不管是哪种方式,OP已经有了count对象,因此它是不必要的。您应该首先检查
counts[item.topicId]
是否存在。这可以将
undefined
指定为
item.count
。“我想根据匹配的属性将第二个对象的值插入第一个对象”->No match=No
counts
根据
未定义的
检查属性是检查属性是否存在的正确方法。如果在这个问题的上下文中没有必要,OP可以从中学习。谢谢易卜拉欣·马赫里尔。谢谢易卜拉欣·马赫里尔。