簡體   English   中英

在對象數組中查找所有匹配的 id

[英]Find all matching ids in an array of objects

我們有兩個對象數組:

第一的:

const allUsers = [
  {
    id: 49,
    name: 'William'
  },
  {
    id: 82,
    name: 'Michael'
  },
]

第二:

const usersWithActivity = [
  {
    id: 49,
    name: 'William',
    last_activity: "2019-06-20T12:09:55.000Z"
  },
  {
    id: 82,
    name: 'Michael',
    last_activity: "2020-02-20T11:08:50.000Z"
  }
]

[題]:

如何返回過去 3 個月處於非活動狀態的所有用戶的數組? (威廉的)

你可以試試

function monthDiff(dateFrom, dateTo) {
 return dateTo.getMonth() - dateFrom.getMonth() + 
   (12 * (dateTo.getFullYear() - dateFrom.getFullYear()))
}

const usersWithActivity = [
  {
    id: 49,
    name: 'William',
    last_activity: "2019-06-20T12:09:55.000Z"
  },
  {
    id: 82,
    name: 'Michael',
    last_activity: "2020-02-20T11:08:50.000Z"
  }
]

const res = usersWithActivity.filter(user => (monthDiff( new Date(user.last_activity),new Date()) > 3))

嘗試這個

 const allUsers = [ { id: 49, name: 'William' }, { id: 82, name: 'Michael' }, ]; const usersWithActivity = [ { id: 49, name: 'William', last_activity: "2019-06-20T12:09:55.000Z" }, { id: 82, name: 'Michael', last_activity: "2020-02-20T11:08:50.000Z" } ]; function isInactiveSince(lastActivity, inactiveSince) { let la = new Date(lastActivity); let s = new Date().setMonth(inactiveSince) return la <= s } function play () { const all = []; usersWithActivity.map((ua, i) => { if(isInactiveSince(ua.last_activity, -3)) { const user = allUsers.find(u => u.id == ua.id) all.push(user); } }) console.log(all) } play()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM