javascript - 我有一个具有重复值的对象,我需要获取重复值并将它们插入到父对象中
问题描述
.done(function(data){
var items = data.d.results;
var programas = new Object();
var titleProgramaId = "";
var titleProgramaIdAtual = "";
for ( var i = 0; i < items.length; i++) {
titleProgramaIdAtual = items[i].Concessao.Title+"-"+items[i].ConcessaoId;
if(titleProgramaIdAtual != titleProgramaId){
programas[i] = {"Title":items[i].Concessao.Title,"Ano":items[i].Concessao.AnoPrograma,"Id":items[i].ConcessaoId};
titleProgramaId = titleProgramaIdAtual;
}
}
console.log(programas);
console.log(items);
{0: {…}, 4: {…}, 5: {…}, 7: {…}, 8: {…}, 9: {…}}
0: {Title: "Programa 1", Ano: "2015", Id: 3}
4: {Title: "Programa 2", Ano: "2015", Id: 8}
5: {Title: "Programa 2", Ano: "2016", Id: 4}
7: {Title: "Programa 3", Ano: "2017", Id: 5}
8: {Title: "Programa 1", Ano: "2018", Id: 9}
9: {Title: "Programa 4", Ano: "2018", Id: 6}
我需要从 ID 对象中获取重复的值,并在其中创建一个新的对象数组。有人帮我吗?
解决方案
此函数将按Id分组
getDuplicatedArray(inputArray) {
var result= inputArray.reduce(function (acc, item) {
let key = (item['Id']);
(acc[key] ? acc[key] : (acc[key] = null || [])).push(item);
return acc;
}, {});
return result
}
示例演示
https://stackblitz.com/edit/js-reduce-duplicate?file=index.js
推荐阅读
- php - 将 If/Else 添加到 WordPress php
- amazon-web-services - 如何在 SNS 过滤中对同一消息属性执行 AND 操作
- c# - 在启动 ASP.NET Core 3 中配置通用集线器
- javascript - react.js如何避免子组件取消父状态更新
- reactjs - Outlook 加载项链接在桌面应用程序中损坏
- antlr4 - 带有条件缺失分隔符的 Antlr4 表达式
- sas - 如何转置一列中有多个项目响应的数据?在 SAS
- java - Java中用于屏幕颜色分析的类
- laravel - 如何使用 laravel-6 从标题创建 slug URL?
- c# - 在 Unity 中隐藏其他场景中的游戏对象