我想向名稱為電子郵件的物件添加一個鍵和值(即年齡:15),并從以下物件陣列的其他物件中洗掉它(年齡)。
[
{
name: 'test',
lname: 'last',
age: 5
},
{
name: 'test1',
lname: 'last1',
age: 15
},
{
name: 'email',
lname: 'last',
},
]
即我想要下面的輸出。
[
{
name: 'test',
lname: 'last'
},
{
name: 'test1',
lname: 'last1'
},
{
name: 'email',
lname: 'last',
age: 15
},
]
謝謝
uj5u.com熱心網友回復:
您可以在這里做的是找到具有name“電子郵件”的物件的索引。找到物件后,將所需的年齡值添加為名為 的新屬性age。最后,您可以使用filter過濾沒有name作為“電子郵件”的專案并洗掉該age屬性。
var data = [ { name: 'test', lname: 'last', age: 5 }, { name: 'test1', lname: 'last1', age: 15 }, { name: 'email', lname: 'last', }, ]
function myFunction(age) {
let indexOfEmail = data.findIndex(element => element.name == "email")
if (indexOfEmail > -1) {
data[indexOfEmail].age = age
data.filter(element => element.name !== "email").map(sub => delete sub['age'])
}
}
myFunction(15)
console.log(data)
uj5u.com熱心網友回復:
您可以通過使用map方法來做到這一點,如下所示:
const data = [
{
name: 'test',
lname: 'last',
age: 5
},
{
name: 'test1',
lname: 'last1',
age: 15
},
{
name: 'email',
lname: 'last',
},
];
const newData = data.map(({age, ...rest})=> rest.name == 'email' ? {...rest, age: 15} : rest)
console.log(newData);
uj5u.com熱心網友回復:
你可以這樣做:
const items = [
{
name: 'test',
lname: 'last',
age: 5
},
{
name: 'test1',
lname: 'last1',
age: 15
},
{
name: 'email',
lname: 'last',
},
];
const newItems = items.filter((item) => {
if (item.name.includes("email")) {
return (item.age = 15);
}
if (JSON.stringify(items).includes("email")) {
delete item.age;
}
return item;
});
console.log(newItems);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/384530.html
標籤:javascript 数组 目的
上一篇:從多個物件中計算相同的屬性值
下一篇:深度連接兩個物件
