簡體   English   中英

AngularJS:如何檢查數組中是否存在日期並返回ID?

[英]AngularJS: How do I check if date exist in array and return id?

我試圖檢查當前日期是否存在於數組中,並返回存在日期的同一索引上存在的ID。

以下代碼無法檢查元素,我已經嘗試過includes()

  const results = []; 
angular.forEach(getEventdate, function(value)
{
results.push({id:value.id,event_date:value.event_date}); });

    if(results.some(result => result.event_date === current_date)) 
{ 
console.log('date exists!'); 
}

樣本數組:

0: {id: 4, event_date: "2019-01-11"}
1: {id: 6, event_date: "2019-01-11"}
2: {id: 7, event_date: "2019-01-11"}
3: {id: 8, event_date: "2017-06-13"}
4: {id: 9, event_date: "2017-06-14"}
5: {id: 10, event_date: "2017-06-21"}
6: {id: 11, event_date: "2017-06-22"}
7: {id: 12, event_date: "2017-06-23"}
8: {id: 13, event_date: "2017-06-26"}
9: {id: 14, event_date: "2017-06-27"}

如果數組中存在當前日期,我需要id

您可以使用$filter

var d = new Date();
var filteredDate = $filter('date')(d, 'yyyy-M-d');
var foundId = (array.filter(function(item) {
    return item.event_date === filteredDate;
})[0] || {}).id;

如果找不到日期,則將返回undefined。

您將需要將$filter注入控制器。

使用ES2015 +,您可以使用find獲得id的方式,否則可以使用undefined

const { id } = values.find(item => item.event_date === currentDate) || {};

如果要獲取日期的第一個匹配項,請嘗試使用find ;如果希望所有匹配日期的匹配項,請嘗試使用filter

例如使用find

const {id} = results.find(val=>{
   return val.event_date === someDateString;
})

過濾器將返回與該值匹配的所有匹配項的數組。

const dates=results.filter(val=>{
    return val.event_date === someDateString;
})

暫無
暫無

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

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