AWS AppSync JS解析器中对象数组排序问题求助
AWS AppSync JavaScript解析器对象数组排序问题
我在实现AWS AppSync的JavaScript解析器时,遇到了对象数组无法排序的问题。官方文档提到支持Array.prototype.sort(),实际测试简单数组(比如字符串数组)时能正常工作,但对象数组就是不行。
尝试1:内联箭头函数
用内联箭头函数作为排序比较器:
array_of_objects.sort((a, b) => (a.event_ts - b.event_ts))
执行失败,报错:
"errorType": "UNSUPPORTED_SYNTAX_TYPE", "value": "Unsupported Syntax Type: ArrowFunction"
尝试2:外部箭头函数
定义外部箭头函数后传入sort:
const compareFn = (a, b) => { return (a.event_ts - b.event_ts) if ( a.event_ts < b.event_ts ){ return -1; } if ( a.event_ts > b.event_ts ){ return 1; } return 0; }; array_of_objects.sort(compareFn)
结果:数组既没有原地排序,调用后也没返回排序后的数组。
尝试3:函数表达式
改用普通函数表达式:
const compareFn = function(a, b) { return (a.event_ts - b.event_ts) if ( a.event_ts < b.event_ts ){ return -1; } if ( a.event_ts > b.event_ts ){ return 1; } return 0; }; array_of_objects.sort(compareFn)
执行失败,报错:
"errorType": "UNSUPPORTED_SYNTAX_TYPE" "value": "Unsupported Syntax Type: FunctionExpression"
内容的提问来源于stack exchange,提问作者Guy
相关产品推荐
相关产品推荐

