[英]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.