new*_*man 1 javascript arrays methods typescript angular
我试图通过存在于每个对象上的名称属性对对象数组进行排序。当使用sort()带有以下代码的方法时,我收到以下错误:
ERROR ReferenceError: b is not defined
这是我的代码:
myArray.sort( (a, b) => {
return (typeof a.name: string === 'string') - (typeof b.name === 'string')|| a.name - b.name || a.name.localeCompare(b.name)};
Run Code Online (Sandbox Code Playgroud)
奇怪的是……
当我运行时:
myArray.sort( (a, b) => {
console.log(a.name);
console.log(b.name);
Run Code Online (Sandbox Code Playgroud)
它记录的名字非常好。我错过了什么??
只是为了彻底了解一点上下文:
我在从 angular service.ts 文件执行 HTTP 调用后使用此方法,并且此数组正在传递给我的组件并订阅。我正在使用 Angular,所以这将是 Typescript 编译为 JavaScript。我还有另一种myArray.forEach()方法,就在我的sort()方法之下,并且有效。
lea*_*eaf 13
这是你想要的吗 ?
var a = [
{ name: "John" },
{ name: "Jack" },
{ name: "Bob" }
];
a.sort(function (a, b) {
if (a.name > b.name) return 1;
if (a.name < b.name) return -1;
return 0;
});
console.log(a);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4674 次 |
| 最近记录: |