Javascript 对不使用数组的对象数组进行排序。sort()方法
我试图按每个对象上存在的name属性对对象数组进行排序。当对下面的代码使用Javascript 对不使用数组的对象数组进行排序。sort()方法,javascript,arrays,angular,typescript,methods,Javascript,Arrays,Angular,Typescript,Methods,我试图按每个对象上存在的name属性对对象数组进行排序。当对下面的代码使用sort()方法时,我得到以下错误: 错误引用错误:未定义b 这是我的密码: myArray.sort( (a, b) => { return (typeof a.name: string === 'string') - (typeof b.name === 'string')|| a.name - b.name || a.name.localeCompare(b.name)}; 但奇怪的是 当我跑步时: myAr
sort()
方法时,我得到以下错误:
错误引用错误:未定义b
这是我的密码:
myArray.sort( (a, b) => {
return (typeof a.name: string === 'string') - (typeof b.name === 'string')|| a.name - b.name || a.name.localeCompare(b.name)};
但奇怪的是
当我跑步时:
myArray.sort( (a, b) => {
console.log(a.name);
console.log(b.name);
它完美地记录了这些名字。我错过了什么
只是想了解一下上下文:
在从angular service.ts文件执行HTTP调用之后,我使用此方法,该数组被传递到我的组件并订阅。我使用的是Angular,所以这将是编译为JavaScript的Typescript。我还有另一个myArray.forEach()
方法,就在我的sort()
方法下面,它正在工作 这就是你想要的吗
var a=[
{姓名:“约翰”},
{姓名:“杰克”},
{name:“Bob”}
];
a、 排序(功能(a、b){
如果(a.name>b.name)返回1;
如果(a.name 控制台日志(a)代码>通过将数值移到顶部,可以使用与字符串或数字类型无关的比较
var数组=[{name:20},{name:21},{name:2},{name:11},{name:1},{name:'John'},{name:'Jane'},{name:'Frank'},{name:'Mary'},]
array.sort((a,b)=>(typeof a.name=='string')-(typeof b.name=='string')| | a.name>b.name | |-(a.name console.log(数组)代码>请同时添加数组。减法运算符对字符串值无效;您希望该表达式做什么?在我看来,它不像是有效的typescript语法。有这么多的|
运算符,您最好在整个表达式中添加括号,但实际上,如果..的话,您可能想使用更容易调试的老式。。否则
请添加一个显示实际问题的图标。这有效。非常感谢。我不太会打字,也不会解决一些问题。也许我应该坚持为我的朋友写JSprojects@newman如您所愿,我想您知道TypeScript是JavaScript的超集,因此当您不确定如何使用TS:-)时,可以使用JS