簡體   English   中英

知道這些對象在對象數組中,如何將道具及其值推送到不具有特定屬性的對象

[英]How can I push a prop and its value to objects that don't have that specific property knowing that these objects are in an array of objects

我想要實現的是:-

循環遍歷peopleData數組,添加一個名為'age'prop ,如果其中一個對象(數組元素)沒有鍵“age”,則為其賦值'-'

 const peopleData = [ { name: "Ann", age: 15, email: "ann@test.com", birthMonth: "Jan" }, { name: "Bob", age: 19, email: "bob@test.com", birthMonth: "Mar" }, { name: "Cam", age: 18, email: "cam@test.com", birthMonth: "Feb" }, { name: "Dan" }, { name: "Steve", birthMonth: "Jun" }, { name: "Tyson", age: 20, birthMonth: "Dec" }, ];

我試圖做的事情並沒有奏效

const addAgeObj = {age: '-'}

const myArr = peopleData.map(personData=> {
  if(!personData.age) {
  peopleData.push(addAgeObj);
  console.log(peopleData);
}
});

peopleData.push是錯誤的。 您需要更新對象,而不是向數組中添加新對象。

 const peopleData = [ { name: "Ann", age: 15, email: "ann@test.com", birthMonth: "Jan" }, { name: "Bob", age: 19, email: "bob@test.com", birthMonth: "Mar" }, { name: "Cam", age: 18, email: "cam@test.com", birthMonth: "Feb" }, { name: "Dan" }, { name: "Steve", birthMonth: "Jun" }, { name: "Tyson", age: 20, birthMonth: "Dec" }, ]; const myArr = peopleData.map(personData=> { return {...personData, age: personData.age || '-'} }); console.log(myArr);

 const addAgeObj = {age: '-'} const peopleData = [ { name: "Ann", age: 15, email: "ann@test.com", birthMonth: "Jan" }, { name: "Bob", age: 19, email: "bob@test.com", birthMonth: "Mar" }, { name: "Cam", age: 18, email: "cam@test.com", birthMonth: "Feb" }, { name: "Dan" }, { name: "Steve", birthMonth: "Jun" }, { name: "Tyson", age: 20, birthMonth: "Dec" }, ]; const myArr = peopleData.map(personData=> { /* if(!personData.age) { peopleData.push(addAgeObj); console.log(peopleData); }*/ if(!Object.keys(personData).includes("age")) personData={...personData,addAgeObj} return personData }); console.log(myArr)

嘗試這個

peopleData.push 所做的是添加新對象並覆蓋現有對象。所以這是錯誤的,這不是你想要的。所以試試這個。

const peopleData = [
  { name: "Ann", age: 15, email: "ann@test.com", birthMonth: "Jan" },
  { name: "Bob", age: 19, email: "bob@test.com", birthMonth: "Mar" },
  { name: "Cam", age: 18, email: "cam@test.com", birthMonth: "Feb" },
  { name: "Dan" },
  { name: "Steve", birthMonth: "Jun" },
  { name: "Tyson", age: 20, birthMonth: "Dec" },
];


const myArr = peopleData.map(personData=> {
  if(!personData.age) {
  
 let newobj={...personData,age:"-"};
  
 return newobj;
  
   }
else{

return personData;

  }
});

console.log(myArr);

暫無
暫無

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

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