簡體   English   中英

如何根據條件在數組中添加對象元素

[英]How to add object element in array based on condition

我有一些類似於下面的對象的靜態數組常量。

export const EMPLOYEES = [
  {
    id: 2,
    name: ‘John’,
  },
  {
    id: 3,
    name: ‘Doe’,
  },
  {
    id: 4,
    name: ‘Bull’,
  },
  {
    id: 5,
    name: ‘Scott’,
  },
];

現在,我僅需要基於某些條件為真時添加最后一個元素。 如果isAmerican()為true,則isAmerican()這種情況。

有人可以在這里幫助我如何根據條件添加元素嗎? 謝謝。

如果條件將得到滿足,只需將一個對象推入您的EMPLOYEES數組即可:

let isAmerican = true;

const EMPLOYEES = [
  {
    id: 2,
    name: "John",
  },
  {
    id: 3,
    name: "Doe",
  },
  {
    id: 4,
    name: "Bull",
  },
  {
    id: 5,
    name: "Scott",
  },
];

if(isAmerican) {
    EMPLOYEES.push({
    id: 6,
    name: "Frank"
  })
}
console.log(EMPLOYEES)

小提琴: https : //jsfiddle.net/rqx35pLz/

您可以使用傳播運算符來做到這一點:

export const EMPLOYEES = [
    {
        id: 2,
        name: "John",
    },
    {
        id: 3,
        name: "Doe",
    },
    {
        id: 4,
        name: "Bull",
    },
    {
        id: 5,
        name: "Scott",
    },
    ... isAmerican() ? [{ id: 6, name: "Jemmy"}] : []
];

永遠不要修改(或嘗試修改)常量。 我可以看到兩種方法:

  1. 創建一個純函數以返回一個新常量,並將新對象添加到數組中
  2. 在常數的定義中使用擴展運算符

選項1:純功能

function makeNewArray(array, objectToAppend, isAmerican) {
    return isAmerican ? [...array, objectToAppend] : array
}

const EMPLOYEES = [
    {
        id: 2,
        name: "John",
    },
    {
        id: 3,
        name: "Doe",
    },
    {
        id: 4,
        name: "Bull",
    },
    {
        id: 5,
        name: "Scott",
    }
];

const arrayWithAmerican = makeNewArray(EMPLOYEES, { id: 6, name: "American Frank"}, true);
const arrayWithoutAmerican = makeNewArray(EMPLOYEES, { id: 6, name: "Not American Frank"}, false);

console.log(arrayWithAmerican);
console.log(arrayWithoutAmerican);

選項2:點差運算符

function isAmerican(){
    // generic code here.
    return true;
}

const EMPLOYEES = [
    {
        id: 2,
        name: "John",
    },
    {
        id: 3,
        name: "Doe",
    },
    {
        id: 4,
        name: "Bull",
    },
    {
        id: 5,
        name: "Scott",
    },
    ... isAmerican() ? [{ id: 6, name: "American Frank"}] : []
];

暫無
暫無

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

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