#arrays #array-merge
Вопрос:
Я пытаюсь объединить свои данные с ключами, но возникла странная ситуация.
Данные:1
"qrCode": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
},
"gallery": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
},
"Whatsapp": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
},
//continues like this.
Данные: 2
[
TextRow { score: '1', date: '2021-10-09', value: '', label: 'share' },
TextRow {
score: '5',
date: '2021-10-06',
value: '',
label: 'qrCode'
},
TextRow {
score: '1',
date: '2021-10-06',
value: '',
label: 'gallery'
},
TextRow {
score: '1',
date: '2021-10-06',
value: 'https://api.whatsapp.com/send?phone= 905448514495',
label: 'Whatsapp'
},
TextRow {
score: '1',
date: '2021-10-06',
value: 'https://twitter.com/90pixel',
label: 'Twitter'
},
TextRow {
score: '2',
date: '2021-10-06',
value: 'https://trendyol.com/jump/yeni-sezon-outdoor-erkek-spor-ayakkabi-25715-navy-p-57375516?boutiqueId=556044amp;merchantId=655',
label: 'Trendyol'
},
TextRow {
score: '1',
date: '2021-10-08',
value: 'https://goo.gl/maps/z3RRpzp5SgxToDv18',
label: 'Lokasyon'
}
]
Я хочу объединить их с помощью одной функции, но вывод неверен. Я получаю каждый элемент одинаково по результату.
},
"qrCode": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
},
"gallery": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
},
"Whatsapp": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
},
"Twitter": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
},
Я вроде как не знаю, что там не так. Вот моя функция. Он сохраняет каждый ключ и добавляет дополнительные ключи. Что мне делать ?
data2.forEach((statistic) => {
data1[statistic.label][statistic.date] = Number(statistic.score);
});
Ответ №1:
Я предполагаю, что это в JavaScript.
Я добавил скобки везде, где это необходимо
let data1 = {"qrCode": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
},
"gallery": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
},
"Whatsapp": {
"2021-10-03": 0,
"2021-10-04": 0,
"2021-10-05": 0,
"2021-10-06": "2",
"2021-10-07": 0,
"2021-10-08": "1",
"2021-10-09": "1"
}}
let data2 = [
{'TextRow': { score: '1', date: '2021-10-09', value: '', label: 'share' }},
{'TextRow': {
score: '1099',
date: '2021-10-06',
value: '',
label: 'qrCode'
}},
{'TextRow': {
score: '1',
date: '2021-10-06',
value: '',
label: 'gallery'
}},
{'TextRow': {
score: '1',
date: '2021-10-06',
value: 'https://api.whatsapp.com/send?phone= 905448514495',
label: 'Whatsapp'
}},
{'TextRow': {
score: '1',
date: '2021-10-06',
value: 'https://twitter.com/90pixel',
label: 'Twitter'
}},
{'TextRow': {
score: '2',
date: '2021-10-06',
value: 'https://trendyol.com/jump/yeni-sezon-outdoor-erkek-spor-ayakkabi-25715-navy-p-57375516?boutiqueId=556044amp;merchantId=655',
label: 'Trendyol'
}},
{'TextRow': {
score: '1',
date: '2021-10-08',
value: 'https://goo.gl/maps/z3RRpzp5SgxToDv18',
label: 'Lokasyon'
}}
]
data2.forEach((statistic) => {
const statiscData = statistic['TextRow'];
if(data1[statiscData.label])
data1[statiscData.label][statiscData.date] = Number(statiscData.score);
});