如何使用一个公共字段提取数据并在javascript中制作嵌套数组

大卫

如何使用一个公共字段提取数据并在javascript中制作嵌套的json

我有一个这样的数组:

var arr = [{
    "date" : "2021-07-01",
    "Subject" : "Math",
    "index" : 1
},{
    "date" : "2021-07-02",
    "Subject" : "Social",
    "index" : 2
},{
    "date" : "2021-07-01",
    "Subject" : "Science",
    "index" : 3
},{
    "date" : "2021-07-02",
    "Subject" : "Economics",
    "index" : 4
},{
    "date" : "2021-07-01",
    "Subject" : "English",
    "index" : 5
},{
    "date" : "2021-07-02",
    "Subject" : "Computer",
    "index" : 6
}]

结果我想要一个这样的数组

arr = [{
    date: "2021-07-01",
    data : [{subject : "Math", "index" : 1},{subject : "Science", "index" : 3},{subject : "English", "index" : 5}]
},{
    date: "2021-07-02",
    data : [{subject : "Social", "index" : 2},{subject : "Economics", "index" : 4},{subject : "Computer", "index" : 6}]
}]

这是我正在尝试的

var checkData = [];
var resultArr;

for(var i=0; i<arr.length; i++){
    if(checkData.indexOf(arr[0].date) !== -1)  {
        // not getting data
    }else{
        checkData.push(arr[0].date);
        resultArr.date = arr[0].date;
        resultArr.data = {"index" : arr[0].index, "subject" : arr[0].subject};
        
    }
}

任何帮助我怎么能做到这一点。

保罗·扎斯拉夫斯基
// fetch unique dates
const uniqueDates = arr.reduce((acc, rec) => {
  if(acc.includes(rec.date))
    return acc;
  return [...acc, rec.date]
}, [])

//build your object
const result = uniqueDates.reduce((acc, rec)=> {
  const data = arr.filter(i => i.date === rec).map(i => {
    delete i.date
    return i
  })
  
  return [...acc, {date: rec, data}]
  
}, [])

console.log(JSON.stringify(result, 2, 2))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我正在尝试为jolt转换制作一个json,但是我被困在嵌套数组格式中

一个如何更新猫鼬模型嵌套数组中的数字

如何在Redux状态的嵌套数组中仅更新一个值?

更新mongo db文档中另一个数组内的嵌套数组字段

如何取消嵌套数据并从SparkR中的数组获取第一个元素?

Javascript / Typescript从另一个嵌套数组中的数据更新数据

如何在PHP中使用多个数组中的一个嵌套嵌套数组生产JSON(用于匹配值)

JavaScript:创建将嵌套数组中的数据转换为具有多个对象的一个数组的函数

基于嵌套数组字段的最后一个元素的Spring数据MongoDb查询

如何在嵌套数组中更新一个文档

从JSON NodeJS中的嵌套数组中提取第一个元素

在Spark中,如何从结构中提取数组并使用它创建一个新字段

如何从具有公共字段的三个数组中制作一个数组

如何从对象中提取pin属性并在JavaScript中创建一个pin数组?

如何删除嵌套数组中的最后一个索引

创建一个嵌套数组

如何使用awk合并具有公共字段的文件并在另一个文件中打印

需要使用3个不同数组中的嵌套数据形成一个数组对象

用javascript中的给定数组创建一个嵌套数组

JavaScript - 如何将多个嵌套数组中的所有对象放入一个新的唯一对象数组

在 javascript 中,如何从 json 数据创建嵌套数组或对象?

javascript循环嵌套数组并根据另一个数组提取属性

如何从嵌套数组响应正文中的一个 API 中获取变量?

如何将嵌套数组推入一个数组中

如何根据另一个值在嵌套数组中查找值?

如何在 MongoDB 中的另一个嵌套数组中更新嵌套数组中的对象

使用javascript es6从包含唯一ID和嵌套数组的多个对象数组中获取公共数据

如何在mongodb的对象中更新我的另一个嵌套数组的嵌套数组

如何根据第一个和最后一个嵌套数组mongo中的值过滤包含具有3级嵌套数组的文档的集合中的数据