gpt4 book ai didi

javascript - 对JS对象中的解构元素进行操作

转载 作者:行者123 更新时间:2023-11-30 10:58:11 25 4
gpt4 key购买 nike

function capitalizeFirstLetter (string) {
return string.charAt(0).toUpperCase() + string.slice(1)
}

我想在一行中解构后标题大写,

const { question } = this.props
const {
title,
Question_uuid: questionUUID
} = question

如何在解构后将属性(property)所有权资本化。 “:”重命名变量,“=”分配默认值。

最佳答案

解构只是一种从对象和数组中解包值的方法。您不能对解构的值执行任何操作。您必须在单独的行中执行此操作:

let { title } = question;
title = capitalizeFirstLetter(title)

有一些 hack 可以在解构时实现它。 (这些纯属学术不应在实际代码库中使用)

一个选项是创建另一个变量并分配一个 default value

const { title, updatedTitle = capitalizeFirstLetter(title) } = question 

这转化为

var title = question.title,
updatedTitle = question.updatedTitle === undefined
? capitalizeFirstLetter(title)
: question.updatedTitle;

如您所见,这仅在新创建的变量名称 updatedTitle 不作为键存在于 question 中时才有效。


还有另一种创建title 变量而不创建额外变量的方法。你可以创建一个 getterString.prototype 中调用了 capitalize。从问题中解构 title 属性以获取 capitalize 属性

Object.defineProperty(String.prototype, "capitalize", {
get: function() {
return this.charAt(0).toUpperCase() + this.slice(1)
}
});

const question = { title: 'lower case question' }
const { title: { capitalize: title } } = question

console.log(title)

这转化为:

const title = question.title.capitalize;

将调用 String.prototype 中的 getter,并将 大写 字符串分配给 title 变量。

关于javascript - 对JS对象中的解构元素进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59139269/

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