提问人:Zahid Abdullah 提问时间:11/16/2022 最后编辑:Zahid Abdullah 更新时间:11/16/2022 访问量:44
重构代码:Array 内部的对象、数据呈现
Refactoring code: Object inside Array, data presentation
问:
我正在开发一个 React 原生 Android/iOS 应用程序。我有一个对象数组,如下所示:
const shots= [
{"heatNumber": 1, "heatShotHit": 0, "heatShotNumber": 1, "hit": false, "id": "e404bd61-0a96-4e21-b6aa-36ff433f16ad", "rangeNumber": 1, "shotNumber": 1, "shotValue": 0, "stationNumber": 1, "timeFromStart": 0, "xEnd": 6, "xStart": 5, "yEnd": 5, "yStart": 6},
{"heatNumber": 1, "heatShotHit": 1, "heatShotNumber": 2, "hit": true, "id": "1badd0dc-59a5-4b2f-97b4-db5fdc72e13d", "rangeNumber": 1, "shotNumber": 2, "shotValue": 10, "stationNumber": 1, "timeFromStart": 163, "xEnd": 2, "xStart": 1, "yEnd": 1, "yStart": 2},
{"heatNumber": 1, "heatShotHit": 2, "heatShotNumber": 3, "hit": true, "id": "50a7a92c-3b26-49df-8ab8-677d6978a0a2", "rangeNumber": 1, "shotNumber": 3, "shotValue": 10, "stationNumber": 1, "timeFromStart": 268, "xEnd": 1, "xStart": 1, "yEnd": 1, "yStart": 1},
{"heatNumber": 1, "heatShotHit": 3, "heatShotNumber": 4, "hit": true, "id": "04b82166-1466-4b92-8c45-5ef2ecce9930", "rangeNumber": 1, "shotNumber": 4, "shotValue": 10, "stationNumber": 1, "timeFromStart": 381, "xEnd": 1, "xStart": 1, "yEnd": 1, "yStart": 1}];
我需要从中得到 3 个值。
- 总命中数(对象总数)。
- heatShotHit 的最终数量 (finalHeatShotHit = heatShotHit 的最后一个对象键值 - heatShotHit 的第一个对象键值)。
- 未命中(总命中数 - finalHeatShotHit)。
我是这样写的代码,
const heatCount = Object.keys(shots).length;
const valueOfHitCalc = shots.map(a=>a.heatShotHit);
const hit = valueOfHitCalc[valueOfHitCalc.length-1] - valueOfHitCalc[0];
const miss = heatCount - hit;
任何人都可以建议我使用更好的代码/重构我的代码,这需要更短的执行时间吗?
答: 暂无答案
评论
shots