javascript - 如何根据 JavaScript 中的键值正确设置输入?
问题描述
编写一个名为“sort_kvs”的函数,它将键值存储的列表/数组作为参数,其中每个键值存储都有键“power”、“purity”、“strike”、“ability”和“spin”映射到整数值。根据键“纯度”处的值对输入进行排序。
function sort_kvs(lista){
lista.sort(function(x){return x['purity']});
return lista;
}
我究竟做错了什么?
函数 sort_kvs 输入不正确[[{'strike': 11, 'power': 249, 'ability': 5, 'purity': 19, 'spin': 13}, {'strike': 18, 'power': 247, 'ability': 20, 'purity': 6, 'spin': 487}, {'strike': 11, 'power': 201, 'ability': -8, 'purity': 10, 'spin': 489}, {'strike': -17, 'power': 290, 'ability': 14, 'purity': 16, 'spin': 269}]]
结果:[{'strike': -17, 'power': 290, 'ability': 14, 'purity': 16, 'spin': 269}, {'strike': 11, 'power': 201, 'ability': -8, 'purity': 10, 'spin': 489}, {'strike': 18, 'power': 247, 'ability': 20, 'purity': 6, 'spin': 487}, {'strike': 11, 'power': 249, 'ability': 5, 'purity': 19, 'spin': 13}]
预期的:[{'strike': 18, 'power': 247, 'ability': 20, 'purity': 6, 'spin': 487}, {'strike': 11, 'power': 201, 'ability': -8, 'purity': 10, 'spin': 489}, {'strike': -17, 'power': 290, 'ability': 14, 'purity': 16, 'spin': 269}, {'strike': 11, 'power': 249, 'ability': 5, 'purity': 19, 'spin': 13}]
解决方案
sort
的回调接受两个参数 - 其中一个是您要比较的一项,另一个是您要与之比较的另一项。因此,sort
使用这两个参数调用,然后访问purity
每个参数的属性,并返回差异:
const sort_kvs = arr => arr.sort((a, b) => a.purity - b.purity);
const input=[[{'strike':11,'power':249,'ability':5,'purity':19,'spin':13},{'strike':18,'power':247,'ability':20,'purity':6,'spin':487},{'strike':11,'power':201,'ability':-8,'purity':10,'spin':489},{'strike':-17,'power':290,'ability':14,'purity':16,'spin':269}]];
console.log(sort_kvs(input[0]));
推荐阅读
- java - 带有无服务器框架和 GraalVM 的 Java 上的 AWS Lambda 函数
- python - python字典-使键值对相反,而某些键共享相同的值而无需重写
- php - 如何在 Woocommerce 客户邮件中添加“相关产品”
- c# - Excel - 无效的日期转换(1900 年之前)
- php - 我正在使用它正在插入的准备好的语句插入数据但是当我插入以检查重复时它给了我错误如何解决
- laravel - 如何获取另一列等于的先前记录
- git - 整理本地 git 分支(最佳实践)
- javascript - 如何将日期从英文格式重新转换为法文格式
- katalon-studio - 在 Katalon 工作室中出现“无法找到对象”错误
- lua - 如何在wireshark lua脚本中从用户数据创建一个tvb范围对象