簡體   English   中英

如何檢查數組中 object 的鍵是否在 javascript 中具有特定值

[英]How to check if key of object in array has specific value in javascript

是否可以檢查數組中的 object 是否具有以下數據格式的特定日期值?

例如,我有一個這樣的數組

[
  {
    date: '2020-05-03',
    items: [{}...]
  },
  ...
]

-> In the above array, I want to check if any object in the array has '2020-05-03' as the date value.

我想知道一個帶日期的 object 是否是?

我嘗試了以下方法,但這只能確認它有一個“日期”作為鍵,我無法比較值。

const existsDate = _.find(prev, 'date');

如果日期已經存在,我還想將一個項目推送到包含該日期的 object 的項目中。

如果沒有,我需要創建一個新日期 object。

您可以使用Array.prototype.find並進行字符串比較

var arr = [
  {
    date: '2020-05-03',
    items: [{}...]
  },
]

const obj = arr.find(item => item.data === '2020-05-03');

編輯:由於要更新現有數組,因此需要使用帶有 findIndex 的 slice 來更新數組

var arr = [
      {
        date: '2020-05-03',
        items: [{}...]
      },
    ]
    const newItem = {};
    const index= arr.findIndex(item => item.data === '2020-05-03');
    if(index > -1) {
       arr = [...arr.slice(0, index), {...arr[index], items: arr[index].items.concat(newItems), ...arr.slice(index + 1)}
    } else {
      arr.push({data: new Date(), items: [newItem]})
    }

您可以使用 Array find()some()來獲取/檢查所需的條件,例如:

 const arr = [ { date: '2020-05-03', items: [{}] }, { date: '2020-05-02', items: [{}] } ] function checkAndAdd(date) { const res = arr.find(ob => ob.date === date); // console.log(res); // based on the added comments. // if date is found, push something to the items, list: if (res) { res.items.push('Hello'); } else { arr.push({ date, items: [{}] }) } console.log('finalArray', arr); } checkAndAdd('2020-05-03'); checkAndAdd('2020-05-06');

您可以使用過濾器或查找 function

let arr = [
    {data:'2020-05-23'},
    {data:'2020-06-23'},
    {data:'2020-07-23'}
]

let find = arr.find( (val) => val.data == '2020-06-23')

console.log(find)

我不確定您到底要做什么,但他的代碼遍歷對象數組並檢查日期變量。 它輸出索引 (i)。

let date = "2020-05-03"

const array = [

{   date: "2020-05-01"   },   
{   date: "2020-05-02"   },   
{   date: "2020-05-03",   }, 

]


for(let i = 0 ; i < array.length ; i ++) {   
    if(array[i].date === date) {
        console.log(i);   } 
    else {
        console.log("Date not in array");   
    } 
}

暫無
暫無

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

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