微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

嵌套对象数组中的forEach循环Javascript

如何解决嵌套对象数组中的forEach循环Javascript

在这里!如何迭代保存日期键的对象数组(例如 10/06/2021)?并迭代对象的技能数组?

数组必须如下所示:

    const data = [
  {
     name: 10/06/2021,sprint speed: "4.00",stamina: "4.00",acceleration: "4.00"
  },.....
    ....
    ...
  ]

我正在尝试:

Object.keys(element.dates).forEach((date) => {
        if (normalizedSkillsObject[date]) {
          let normalizedTemps = {
            ...normalizedSkillsObject[date],...{ name: date,data: element.dates[date].skills },};
          normalizedSkillsObject = {...normalizedSkillsObject,[date]: normalizedTemps}
        } else {
          normalizedSkillsObject = {
            ...normalizedSkillsObject,[date]: { name: date,data: element.dates[date].skills.forEach(s => s.name) },};
        }
      });

但这是输出

解决方法

const json = [
  {
    dates: {
      "10/06/2021": {
        average: 4,skills: [
          { id: "1",name: "acceleration",avg: "4.00" },{ id: "2",name: "sprint speed",{ id: "3",name: "stamina",],},"13/04/2021": {
        average: 2.97,{
    dates: {
      "20/04/2021": {
        average: 4,];

const result = json.flatMap(({ dates }) => {
  return Object.entries(dates).map(([name,value]) =>
    Object.assign({ name },...value.skills.map(({ name,avg }) => ({ [name]: avg })))
  );
});

console.log(result);

,

const obj = {
  dates: {
    "10/06/2021": {
      skills: [
        { id: 1,name: "accel",avg: "4.0" },{ id: 2,name: "agility",avg: "0.00" },"10/07/2021": {
      average: 4,skills: [
        { id: "1",};

const res = Object.entries(obj.dates).reduce(
  (acc,[date,{ skills }]) => [
    ...acc,{
      name: date,...skills
        .filter(({ avg }) => Number(avg)) // remove skill avg's that are 0
        .reduce((a,{ name,avg }) => ({ ...a,[name]: avg }),{}),[]
);
console.log(res);

,

我没有办法测试这个 - 你没有提供数据来处理,但它看起来很简单。如果这不正确,请发布您的数据,我会进行微调

let data = {}
for (const [date,props] of Object.entries(element.dates)) {
  let tmpObj= {name: date};
  props.skills
     .filter( skill => ["sprint speed","stamina","acceleration"].contains(skill.name))
     .forEach(sk => {tmpObj[sk.name] = sk.avg});
  data.push(tmpObj);
}

console.log(data)
,

const obj = {
  dates: {
    "10/06/2021": {
      skills: [
        { id: 1,[]
);
console.log(res);

const obj = {
  dates: {
    "10/06/2021": {
      skills: [
        { id: 1,[]
);
console.log(res);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。