删除任何值大于给定数字的属性

时间:2017-02-26 02:21:35

标签: javascript

:)

我需要删除其值大于给定数字的属性。我已经看过这个问题了:How do I remove a property from a JavaScript object?和这个问题:Remove some properties from array of javascript objects而且这个问题:remove item from array javascript但我仍然无法得到我需要的理想答案。 (他们只返回数字或我不需要的数组的其他部分。)

这是我写的代码:

 function removeNumbersLargerThan(num, obj) {
arr = [];
for (var i = 0; i < obj.length; i++) {
return arr[i] > 5;
}
}
var obj = {
  a: 8,
  b: 2,
  c: 'montana'
};
removeNumbersLargerThan(5, obj);

这是我的结果:

console.log(obj); // => { a: 8, b: 2, c: 'montana' }

正确的console.log应该是这样的:

   { b: 2, c: 'montana' }

有什么建议吗?谢谢! PS:我是新人,即使我试图遵守这些规则,我的问题似乎也会被大大降低。如果我发布的帖子不正确,有人可以告诉我,如果他们打算让我失望,我会做错吗?这样我可以改进。我在这里学习! :D非常感谢!

4 个答案:

答案 0 :(得分:5)

function removeNumbersLargerThan(num, obj) {
  for (var key in obj) {                    // for each key in the object
    if(!isNaN(obj[key]) && obj[key] > num)  // if the value of that key is not a NaN (is a number) and if that number is greater than num
      delete obj[key];                      // then delete the key-value from the object
  }
}

var obj = {
  a: 8,
  b: 2,
  c: 'montana'
};

removeNumbersLargerThan(5, obj);

console.log(obj);

答案 1 :(得分:2)

Object.keys()函数将给定对象的所有keys作为数组返回。然后,迭代它们并检查指定的键是否大于给定的数字,如果是这样 - 删除它。

&#13;
&#13;
var obj = { a: 8, b: 2, c: 'montana', d: 12 };

function clean(obj, num){
  Object.keys(obj).forEach(v => obj[v] > num ? delete obj[v] : v);
  console.log(obj);
}

clean(obj, 5);
&#13;
&#13;
&#13;

答案 2 :(得分:2)

问题中的

javascript不检查对象属性值。您可以使用Object.entries()获取属性键,值对的数组,for..of循环以迭代属性和值,如果值等于或大于5则删除对象的属性

function removeNumbersLargerThan(num, obj) {
  for (let [key, value] of Object.entries(obj)) {
    if (typeof value === "number" && value > 5) delete obj[key]
  }
}

答案 3 :(得分:0)

function removeNumbersLargerThan(num, obj) {

  for(const property in obj){ 
    if(obj[property] > num){
      delete obj[property];   
    }
  }   
   console.log(obj)
}

/*

1. compare the numbers  
2. delete what you need to    
3. RETURN your needs


You can check MDN for for...in
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

*/