【问题标题】:Push array of object if data is same如果数据相同,则推送对象数组
【发布时间】:2021-10-10 21:25:40
【问题描述】:

我有一些看起来像这样的对象数组:

const data = [
  { date: "04-08-2021", name: "bojes" },
  { date: "03-08-2021", name: "yolla" },
  { date: "02-08-2021", name: "rafika" },
  { date: "01-08-2021", name: "adit" },
  { date: "26-07-2021", name: "qor" },
  { date: "10-05-2021", name: "pandu" },
]

当前日期前 7 天的数组如下所示:

const dataCurretToLastWeek = [
  "29-07-2021",
  "30-07-2021",
  "01-08-2021",
  "02-08-2021",
  "03-08-2021",
  "04-08-2021",
  "05-08-2021",
]

并且想把它变成这样的东西:

const newData = [
  { date: "04-08-2021", name: "bojes" },
  { date: "03-08-2021", name: "yolla" },
  { date: "02-08-2021", name: "rafika" },
  { date: "01-08-2021", name: "adit" },
]

如何做到这一点?

【问题讨论】:

  • 到目前为止你尝试过什么?看来您可能想研究filter 数组方法和includes 数组方法

标签: javascript arrays sorting object


【解决方案1】:

您可以使用array#filterarray#includes 来执行此操作:

array#filter

MDN 网络文档:
filter() 方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。

array#includes

MDN 网络文档:
includes() 方法确定数组是否在其条目中包含某个值,根据需要返回 true 或 false。

完整代码:

const dataCurretToLastWeek = [
  "29-07-2021",
  "30-07-2021",
  "01-08-2021",
  "02-08-2021",
  "03-08-2021",
  "04-08-2021",
  "05-08-2021"
];

const data = [
  {'date': '04-08-2021','name':'bojes'},
  {'date': '03-08-2021','name':'yolla'},
  {'date': '02-08-2021','name':'rafika'},
  {'date': '01-08-2021','name':'adit'},
  {'date': '26-07-2021','name':'qor'},
  {'date': '10-05-2021','name':'pandu'}
];

const newData = data.filter(({date}) => dataCurretToLastWeek.includes(date))

console.log(newData)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 2017-05-10
    相关资源
    最近更新 更多