为了账号安全,请及时绑定邮箱和手机立即绑定

在对象中查找最大元素及其键 - React native

在对象中查找最大元素及其键 - React native

料青山看我应如是 2023-05-25 17:01:04
我首先必须告诉我,我浏览了此处的网站以找到答案,但我做不到。我有一个包含键(服务名称)和值(计数器)的对象,我只想从该对象中提取最大和最小值及其键。一个例子:Object {  "Learn JavaScript": 3, //Max  "Learn React": 2, //Ignore  "manicure": 1, //Min}然后我想创建一个对象数组,这些对象将按降序排列我用来显示上层结果的代码: const arrayofServices  = services; //services => state the holding the services          const servicesCounter = arrayofServices.reduce((counterObj, service) => {            if (counterObj.hasOwnProperty(service)) {              counterObj[service] += 1;              return counterObj;          }                      return {              ...counterObj,              [service]: 1            };          }, {});          console.log("Service Counter in =>" ,servicesCounter);有什么建议么?
查看完整描述

2 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

再试一次 :)


const obj = {"Learn JavaScript": 3, "Learn React": 2, "manicure": 1};


function MinMaxFromObj(obj) {

  const min = Math.min(...Object.values(obj));

  const max = Math.max(...Object.values(obj));

  const minKey = Object.entries(obj).find(([key, value]) => 

  value === min ? key : null);

  const maxKey = Object.entries(obj).find(([key, value]) => 

  value === max ? key : null);

  return [Object.fromEntries([minKey]), Object.fromEntries([maxKey])];


console.log(MinMaxFromObj(obj));


查看完整回答
反对 回复 2023-05-25
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

这是一种可以帮助您解决问题的方法:


const minMaxEntry = (object) => {

  let minKey;

  let minValue = Infinity;


  let maxKey;

  let maxValue = -Infinity;


  for (const key in object) {

    if (object[key] < minValue) {

      minKey = key;

      minValue = object[key];

    }


    if (object[key] > maxValue) {

      maxKey = key;

      maxValue = object[key];

    }

  }


  const minEntry = { [minKey]: minValue };

  const maxEntry = { [maxKey]: maxValue };


  return [minEntry, maxEntry];

};


// --- //


const object = {

  "Learn JavaScript": 3,

  "Learn React": 2,

  "manicure": 1,

};


const [minEntry, maxEntry] = minMaxEntry(object);


console.log('Min Entry =>', minEntry);

// { "manicure": 1 }


console.log('Max Entry =>', maxEntry);

// { "Learn JavaScript": 3 }


查看完整回答
反对 回复 2023-05-25
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信