gpt4 book ai didi

javascript - 未使用的属性(property)下降?

转载 作者:太空狗 更新时间:2023-10-29 18:00:48 27 4
gpt4 key购买 nike

首先,我的类(class):

export class FooBar {
...
isFavorite: boolean = false;

constructor() {
this.isFavorite = false;
}
}

我使用 Lodash 对 FooBar 列表进行排序,因此我的收藏夹将位于列表顶部:

this.fooBars = _.orderBy(this.fooBars, ['isFavorite', 'name'], ['desc', 'asc']);

当我收藏一个项目并查看我的 console.log 时,它是这样写的:

isFavorite is not shown when false

请注意,#3 没有 isFavorite 属性...

每当我从未设置 isFavorite 时,它就不会显示。这使得 Lodash 排序错误。
有没有办法始终显示此属性,即使它未使用/未设置/false 时也是如此?

我试过了:
- 在类中将属性设置为 false
- 在类的构造函数中将属性设置为 false
- 在我的组件中循环遍历 this.foobars,将它们全部设置为 false
- 添加接口(interface)到 FooBar

最佳答案

我认为这是默认类属性的 typeScript 方式

export default class FooBar {
constructor(private isFavorite: boolean = false) {
...
}
}

或者只是

export class FooBar {
constructor() {
this.isFavorite = false;
}
}

或者您可以在 _.orderBy iteratee 中使用一个函数来相应地对您的列表进行排序:

var foobars = [{isFavorite:false, name:"aaa"}, {isFavorite:true, name:"bbb"}, {isFavorite:false, name:"ccc"}, {name:"ddd"}]


foobars = _.orderBy(foobars, [function(foobar) {
return foobar.isFavorite == true;
}, "name"], ["desc", "asc"]);

console.log(foobars)
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>

关于javascript - 未使用的属性(property)下降?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51424060/

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