3 回答

TA貢獻1790條經驗 獲得超9個贊
var data = {
"audioResponse": [{
"speaker": "spk1",
"startTime": "0.0",
"endTime": "15.239",
"emotion": "neutral",
"emotionScore": "0"
}, {
"speaker": "silence",
"startTime": "15.240",
"endTime": "16.900",
"emotion": "NA",
"emotionScore": "NA"
}, {
"speaker": "spk2",
"startTime": "16.932",
"endTime": "27.320",
"emotion": "happy",
"emotionScore": "2"
}, {
"speaker": "spk1",
"startTime": "27.977",
"endTime": "37.900",
"emotion": "anger",
"emotionScore": "-3"
}]
};
var result = {
audioResponse: []
};
for (var item of data.audioResponse) {
var existed = result.audioResponse.find(x => x[item.speaker]);
if (!existed)
result.audioResponse.push({
[item.speaker]: []
});
existedArray = result.audioResponse.find(x => x[item.speaker])[item.speaker];
var copy = {...item};
delete copy.speaker;
existedArray.push(copy);
}
console.log(result);

TA貢獻1812條經驗 獲得超5個贊
var inputList = {
"audioResponse": [
{
"speaker":"spk1",
"startTime": "0.0",
"endTime": "15.239",
"emotion": "neutral",
"emotionScore": "0"
},
{
"speaker":"silence",
"startTime": "15.240",
"endTime": "16.900",
"emotion": "NA",
"emotionScore": "NA"
},
{
"speaker":"spk2",
"startTime": "16.932",
"endTime": "27.320",
"emotion": "happy",
"emotionScore": "2"
},
{
"speaker":"spk1",
"startTime": "27.977",
"endTime": "37.900",
"emotion": "anger",
"emotionScore": "-3"
}
]}
var result = inputList.audioResponse.reduce((acc, {speaker, ...rest})=>{
acc['audioResponse'][speaker] = (acc['audioResponse'][speaker]) || [];
acc['audioResponse'][speaker].push(rest);
return acc;
}, {audioResponse:{}});
console.log(result);

TA貢獻1757條經驗 獲得超7個贊
但我想將其更改為需要拾取其中一個嵌套值并將其投影為上級鍵的格式
您可以將組形成的屬性設置為動態(tài)
'use strict';
let attribute = 'speaker'; // can be 'speaker' or 'emotion' or 'emotionScore'
let output = {
audioResponse: []
};
for (let response of data.audioResponse) {
let groupKey = response[attribute];
let group = output.audioResponse[groupKey];
delete response[attribute]; //remove the key
if (group) {
group.push(response);
} else {
group = [response];
}
output.audioResponse[groupKey] = group;
}
console.log(output);
添加回答
舉報