У меня есть данные в виде массива объекта, т.е. данных, и я хочу передать sh значение из данных в другой массив объекта, например, catArrObj, на основе аналогичного значения полей внутри двух из них.
catArrObj
catArrObj=[
{
name:"one",
tags:[]
},
{
name:"two",
tags:[]
}
]
Я хочу указать sh значение на основе имени catArrObj внутри тегов catArrObj, я использую данные для pu sh значение, категории которого совпадают с именем catArrObj.
data
data= [
{
"tag_name": "US",
"id": 1,
"categories": "one"
},
{
"tag_name": "US-CA",
"id": 2,
"categories": "one"
},
{
"tag_name": "Full Time",
"id":3,
"categories": "two"
}
]
logi c
for(let i=0; i<catArrObj.length; i++){
for(let index=0; index<data.length; index++){
if(catArrObj[i].name === data[index].categories){
let singleTag = {
name: data[index].categories,
value: data[index].tag_name,
id: data[index].id,
checked: false,
}
catArrObj[i].tags.push(singleTag)
}
}
console.log(catArrObj)
Я должен получить требуемый вывод как это
[
{
name:"one",
tags:[
{
checked: false
id: 1
name: "one"
value: "US"
},
{
checked: false
id: 2
name: "one"
value: "US-CA"
},
]
},
{
name:"two",
tags:[
{
checked: false
id: 1
name: "two"
value: "Full Time"
}
]
}
]
но я получаю это
[
{
name:"one",
tags:[
{
checked: false
id: 1
name: "one"
value: "US"
},
{
checked: false
id: 2
name: "one"
value: "US-CA"
},
{
checked: false
id: 1
name: "two"
value: "Full Time"
}
]
},
{
name:"two",
tags:[
{
checked: false
id: 1
name: "one"
value: "US"
},
{
checked: false
id: 2
name: "one"
value: "US-CA"
},
{
checked: false
id: 1
name: "two"
value: "Full Time"
}
]
}
]
почему все три значения помещаются в оба объекта? Я пробовал много подходов, но не могу получить желаемый результат.
также данные динамические c, это означает, что у меня может быть любое количество объектов внутри него с различными категориями и catArrObj будет иметь объекты, равные уникальным категориям внутри данных.