javascript - 当对象值的条件大于 5 时输出对象键

标签 javascript arrays object key-value-store

var veg = {"mushroom": 30, "pepper": 60, "corn": 1, "carrot": 
2, "pumpkin": 4}

如果对象值大于 5,则打印 veg 中的所有键。我似乎无法弄清楚如何将 if 语句条件放入我的代码中。

我使用 for 循环遍历对象获得了所有的值和键。

function getKey(veg){
  var arr = [];
  for (var x of Object.keys(veg)){
    arr.push(x);
  }
  return arr;
}

console.log(getKey(veg))

//----------------------------------------

function getVal(veg){
  var arr = [];
  for (var i of Object.values(veg)){
    arr.push(i);
  }
  return arr;
}

console.log(getVal(veg))

// END GOAL

must return ["mushroom", "pepper"]

最佳答案

使用方法for in

var veg = {"mushrooms": 30, "peppers": 60, "meatballs": 1, "chicken": 
2, "olives": 4}
            
function getKey(veg){
  const arr = [],
  obj = Object.keys(veg);
  for (var x in obj){
    if(veg[obj[x]] > 5){
      arr.push(obj[x]);
    }
  }
  return arr;
}

console.log(getKey(veg))

使用方法forEach

var veg = {"mushrooms": 30, "peppers": 60, "meatballs": 1, "chicken": 
2, "olives": 4}

function getKey(veg){
  const arr = [];
  Object.keys(veg).forEach(function(item){
    if(veg[item] > 5) arr.push(item);
  }); 
  return arr;
}

console.log(getKey(veg));

使用方法过滤

var veg = {"mushrooms": 30, "peppers": 60, "meatballs": 1, "chicken": 
2, "olives": 4}


function filterItems(arr) {
  return Object.keys(arr).filter(function(el) {
      return arr[el] > 5;
  })
}

console.log(filterItems(veg));

var veg = {"mushrooms": 30, "peppers": 60, "meatballs": 1, "chicken": 
2, "olives": 4}

function filterItems(arr) {
  return Object.keys(arr).filter(el => arr[el] > 5);
}

console.log(filterItems(veg));

关于javascript - 当对象值的条件大于 5 时输出对象键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55660945/

相关文章:

javascript - 使用 Array.prototype.filter 过滤嵌套的子对象

angular - 如果我们在 Angular 4 中使用 *ngFor,如何在一个实例上触发一个函数

java - 有没有办法创建一个对象,其中对象类由另一个变量定义?

JavaScript 不工作

javascript - 在 JQuery 中如何获取相邻的表格单元格?

javascript - sails.js 中 Controller 与 typescript (或不 typescript )之间的继承

c# - 处理可变数量的输出参数,减少 C# 中的代码重复

javascript - 屏幕宽度与可见部分

arrays - 使用 MATLAB 计算数组中出现的次数

javascript - 在 JavaScript 中如何将两个对象合并到同一个属性中?