编写一个函数,删除给定对象的任何属性,这些属性的值是比给定数字和 returns 对象长的字符串

Write a function that removes any properties on the given object whose values are strings longer than the given number and returns the object

我正在编写一个函数来删除值大于给定数字的对象,但我似乎正在尝试的一切都不起作用。

function removeStringValuesLongerThan(num, obj) {
  for (let prop in obj) {
    if (obj[prop] > num) {
      delete obj[prop];
      }
      return obj;
    }
  }

let competitorDetails = {
  name: 'Montana Slim',
  age: 20,
  location: 'Texas'
}

removeStringValuesLongerThan(6, competitorDetails) 

我的代码正在返回:

{ 姓名:'Montana Slim',年龄:20,地点:'Texas' }

任何人都可以给我一些关于我哪里出错的提示吗?我在这里查看了其他类似的问题,但他们的回答对我没有帮助。

您正在检查 obj[prop] 的值是否大于 num

你应该做的是检查 obj[prop] 是否是 string 以及 obj[prop].length 是否大于 num.

基本改这部分:

if (obj[prop] > num) {

至:

if (typeof obj[prop] === 'string' && obj[prop].length > num) {