如何单独提取JavaScript函数返回数组中的键名和数值
获取getMax返回结果单独项的实现方法
你不需要修改现有getMax函数的任何逻辑(不会影响其他依赖该函数的功能),因为该函数固定返回长度为2的数组:
- 数组索引0位:最大值对应的对象键(也就是你要的
c/a) - 数组索引1位:对应的最大数值(也就是你要的3/4)
原有代码参考
const getMax = (data) => Object.entries(data).reduce((max, item) => max[1] > item[1] ? max : item); var myData1 = { a: 1, b:2, c: 3}; var myData2 = { a: 4, b:2, c: 3}; console.log(getMax(myData1)); console.log(getMax(myData2));
原有代码运行输出:
[ 'c', 3 ] [ 'a', 4 ]
实现方式
1. 数组下标直接取值
调用函数拿到返回结果后,直接通过数组下标访问对应位置的值即可:
// 处理myData1 const res1 = getMax(myData1); console.log(res1[0]); // 打印 c console.log(res1[1]); // 打印 3 // 处理myData2 const res2 = getMax(myData2); console.log(res2[0]); // 打印 a console.log(res2[1]); // 打印 4
2. ES6解构赋值取值
也可以用解构语法直接把返回结果拆成单独变量,写法更简洁:
// 处理myData1 const [key1, val1] = getMax(myData1); console.log(key1); // 打印 c console.log(val1); // 打印 3 // 处理myData2 const [key2, val2] = getMax(myData2); console.log(key2); // 打印 a console.log(val2); // 打印 4
两种写法都完全不改动原
getMax函数,原有依赖该函数的功能可以正常运行。
内容的提问来源于stack exchange,提问作者masch1na
相关产品推荐
相关产品推荐

