【问题标题】:Why map in js doesn't accept function argument [duplicate]为什么js中的map不接受函数参数[重复]
【发布时间】:2021-09-27 18:40:27
【问题描述】:

我正在调用一个函数并将对象数组作为第一个参数传递,第二个参数是第一个参数的对象属性,但我不知道为什么 map func 不接受第二个参数属性 这里的代码请看一次

const myfunc = (arrObj, property) => {
  const arr1 = arrObj.map(item => {
    return item.property
  }
  return arr1:
}

const arrObj = [{
    title: 'book',
    body: 'hello'
  },
  {
    title: 'cup',
    body: 'hii'
  }
];

// Func call
console.log(myfunc(arrObj, 'title'));

【问题讨论】:

  • 您应该使用小写的constreturn。但关键问题是您实际上并没有从 myfunc 返回任何内容到日志。
  • 请修正您的代码大小写(JavaScript 区分大小写,const/return 是小写)和语法错误(您的console.log 行缺少括号) .另外请添加您期望此代码执行的操作。
  • 您还需要使用item[property] 访问该属性,否则它只是在寻找一个名为property 的属性

标签: javascript node.js arrays express array-map


【解决方案1】:
  1. constreturnconsole 使用小写。

  2. 从您的函数中返回一个可以记录的值(在本例中为数组)。

  3. 使用item[property] 访问title 属性。这些对象中没有“属性”键。

  4. 确保关闭所有括号。

function myfunc(arrObj, property) {
  return arrObj.map(item => item[property]);
}

const arrObj=[{title:"book",body:"hello"},{title:"cup",body:"hii"}];

console.log(myfunc(arrObj, 'title'));

【讨论】:

    【解决方案2】:

    您的代码中有多个错误。像return,const,console 这样的第一个关键字都是区分大小写的。其次,您没有从该功能返回。第三,因为属性是一个变量,你必须使用方括号而不是点

    const myfunc = (arrObj, property) => {
      return arrObj.map(item => {
        return item[property]
      })
    }
    
    const arrObj = [{
        title: 'book',
        body: 'hello'
      },
      {
        title: 'cup',
        body: 'hii'
      }
    ];
    
    // Func call
    console.log(myfunc(arrObj, 'title'));

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 2021-09-30
      • 1970-01-01
      • 2015-04-16
      • 2022-09-23
      • 2020-03-31
      • 2020-12-01
      • 2017-08-11
      • 1970-01-01
      相关资源
      最近更新 更多