gpt4 book ai didi

javascript - 映射一个对象并使用 native JS 更改一个属性值

转载 作者:IT老高 更新时间:2023-10-28 23:09:19 26 4
gpt4 key购买 nike

我希望能够返回数据结果集,只需将日期字段的格式更改为更易读的格式,而保留所有其他数据不变。我宁愿在没有第三方库的情况下这样做。

这是我目前所拥有的:

//Get all the Tasks
function getAllTasks() {
return models.gantt_tasks.findAll()
.then(function(tasks){

let results = tasks.map(task => task.start_date = task.start_date.format("YYYY-MM-DD"));
return results;
})
.catch(function(e) {
console.error(e);
return e;
});
}

我希望 map 在返回数据之前完成。

最佳答案

您可以使用 Object.assign(target, ...sources) ( here ),您希望通过保持其他值不变而仅更改其中一个值。

例如:

const object1 = {
a: 1,
b: 2,
c: 3
};

现在假设您要将 b 的值更改为 22,您可以这样做:

const object2 = Object.assign({}, object1, {b: 22});

console.log(object1); // { a: 1, b: 2, c: 3 }
console.log(object2); // { a: 1, b: 22, c: 3 }

注意,这不会改变 object1 的值,它会创建一个新的空对象,如 Object.assign() 的第一个参数中定义的那样,它会向空对象添加更多参数,并且如果再次遇到相同的键,则更新该键的值。

这样你可以改变一个对象的一个​​甚至多个值。

A BETTER WAY

Airbnb 的 JavaScript Style Guide() {} 说:

Prefer the object spread operator over Object.assign to shallow-copy objects.

// very bad
const original = { a: 1, b: 2 };
const copy = Object.assign(original, { c: 3 }); // this mutates `original` ಠ_ಠ
delete copy.a; // so does this

// bad
const original = { a: 1, b: 2 };
const copy = Object.assign({}, original, { c: 3 }); // copy => { a: 1, b: 2, c: 3 }

// good
const original = { a: 1, b: 2 };
const copy = { ...original, c: 3 }; // copy => { a: 1, b: 2, c: 3 }

您可以查看完整文档 here

关于javascript - 映射一个对象并使用 native JS 更改一个属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39462733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com