按字母顺序排序 Angular
Alphabetically sort in Angular
我是 Angular 的新人,很抱歉,如果这个问题重复出现,但我找不到我正在寻找的答案。我有一个包含下一个 JSON 的文件:
{"name": "John", "size" : "small"},
{"name": "Rocky", "size" : "small"},
{"name": "Angel", "size" : "small"},
{"name": "Amber", "size" : "small"},
{"name": "Sam", "size" : "small"}
我想创建一个管道,这样我就可以 仅显示名称 但按字母顺序排列。
那应该是这样的:
琥珀色天使约翰洛基山姆
或者...除了使用管道还有其他方法吗?
非常感谢
如果要创建管道来执行此操作,请遵循以下代码:
import { Pipe, PipeTransform } from "@angular/core";
@Pipe({
name: "nameConcat"
})
export class NamePipe implements Pipetransform {
transform(value: any[], ...args: any[]) {
const sorted = [...value].sort((a, b) => (a.name > b.name ? 1 : -1));
return sorted.map((item) => item.name).join(" ");
}
}
并像这样使用它:
<p>{{data | nameConcat}}</p>
这是一个codesandbox:https://codesandbox.io/s/stupefied-bash-remov?fontsize=14&hidenavigation=1&theme=dark
我是 Angular 的新人,很抱歉,如果这个问题重复出现,但我找不到我正在寻找的答案。我有一个包含下一个 JSON 的文件:
{"name": "John", "size" : "small"},
{"name": "Rocky", "size" : "small"},
{"name": "Angel", "size" : "small"},
{"name": "Amber", "size" : "small"},
{"name": "Sam", "size" : "small"}
我想创建一个管道,这样我就可以 仅显示名称 但按字母顺序排列。 那应该是这样的:
琥珀色天使约翰洛基山姆
或者...除了使用管道还有其他方法吗?
非常感谢
如果要创建管道来执行此操作,请遵循以下代码:
import { Pipe, PipeTransform } from "@angular/core";
@Pipe({
name: "nameConcat"
})
export class NamePipe implements Pipetransform {
transform(value: any[], ...args: any[]) {
const sorted = [...value].sort((a, b) => (a.name > b.name ? 1 : -1));
return sorted.map((item) => item.name).join(" ");
}
}
并像这样使用它:
<p>{{data | nameConcat}}</p>
这是一个codesandbox:https://codesandbox.io/s/stupefied-bash-remov?fontsize=14&hidenavigation=1&theme=dark