获取 .replace() 的第二个参数作为返回 JS 对象的函数?

马克·卡彭特

我有这个代码,

function itemFormatter(match, p1, p2, p3, p4, p5, offset, string){
    var lineItem = {
        id: p3 ? p3 : p5,
        type: p1 ? p1 : p4,
        dualCheck: p2 ? true : false
    };
    console.log(lineItem);
    return lineItem;
}
var item = $(this).prop('id').replace(/(clItem[YNA]{1,})(DC)(\d{1,3})|(clItem[YNA]{1,})(\d{1,3})/g, itemFormatter);
console.log(item.id);

目的是获取一个 jQ 对象的 id 并返回一个从该 ID 创建的 js 对象。但是, itemFormatter() 内部的日志记录了一个带有数据的实际对象,[object Object]如果您只记录 item 并且undefined如果您记录类似item.id.

我将如何让 lineItem 正确返回,或者像我期望的那样返回数据?


$(document).on('click', '.clItemCB', function(){
  function itemFormatter(match, p1, p2, p3, p4, p5, offset, string){
    var lineItem = {
      id: p3 ? p3 : p5,
      type: p1 ? p1 : p4,
      dualCheck: p2 ? true : false
    };
    console.log(lineItem);
    return lineItem;
  }
  var item = $(this).prop('id').replace(/(clItem[YNA]{1,})(DC)(\d{1,3})|(clItem[YNA]{1,})(\d{1,3})/g, itemFormatter);
  console.log(item);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<button id="clItemYDC253" class="clItemCB">Click Me!</button>

马克·卡彭特
function itemFormatter(match, p1, p2, p3, p4, p5, offset, string){
    var id = p3 ? p3 : p5,
      type = p1 ? p1 : p4,
      dualCheck = p2 ? true : false;
    // console.log(lineItem);
    return [id, type, dualCheck].join('-');
  }
  var item = $(this).prop('id').replace(/(clItem[YNA]{1,})(DC)(\d{1,3})|(clItem[YNA]{1,})(\d{1,3})/g, itemFormatter).split('-');
  console.log(item);

所以这就是我想出的解决方案,而不是尝试从 replace() 返回一个对象,而是返回一个包含由连字符分隔的重新格式化信息的字符串,然后将 split() 链接到变量声明。这将字符串分解为一个数组 a 允许通过索引访问信息。类似于我试图通过返回一个对象来实现的功能。


$(document).on('click', '.clItemCB', function(){
      function itemFormatter(match, p1, p2, p3, p4, p5, offset, string){
        var id = p3 ? p3 : p5,
          type = p1 ? p1 : p4,
          dualCheck = p2 ? true : false;
        // console.log(lineItem);
        return [id, type, dualCheck].join('-');
    }
    var item = $(this).prop('id').replace(/(clItem[YNA]{1,})(DC)(\d{1,3})|(clItem[YNA]{1,})(\d{1,3})/g, itemFormatter).split('-');
    console.log(item[0]+' I am the ID')
    console.log(item[1]+' I am the Type')
    console.log(item[2]+' I am for duplicate checking');

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<button id="clItemYDC253" class="clItemCB">Click Me!</button>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

函数第二个参数作为条件传递?

来自分类Dev

第二个函数如何获取数据?

来自分类Dev

两个 JS 对象,从第一个对象中获取它在第二个对象中缺少的值

来自分类Dev

启动第二个JS函数

来自分类Dev

返回作为第二个参数传递的数组中第一个参数的索引的函数

来自分类Dev

返回一个删除了第二个对象的所有属性的js对象

来自分类Dev

Angular JS:如何从控制器调用第二个服务并使用返回的对象更新DOM

来自分类Dev

简单的`replace()`的第二个参数的问题

来自分类Dev

从两个可能的数字(4或7)中获取一个数字并返回第二个数字的函数

来自分类Dev

javassist,获取doGet方法的第二个参数

来自分类Dev

如何使用* pointer从函数中获取第二个值?

来自分类Dev

使用正则表达式从c源获取函数调用的第二个字符串参数

来自分类Dev

忽略函数的第二个参数

来自分类Dev

将函数的第二个参数读入数组

来自分类Dev

将第二个参数传递给函数

来自分类Dev

向lapply函数添加第二个参数

来自分类Dev

函数OBJECT_ID的第二个参数

来自分类Dev

函数声明中的第二个返回类型?

来自分类Dev

如果id与另一个对象id相等,则获取第二个对象

来自分类Dev

使用第二个参数作为十进制值在Math.pow操作中获取NaN

来自分类Dev

使用第二个参数作为十进制值在Math.pow操作中获取NaN

来自分类Dev

如何将选项对象作为参数传递给在jQuery()的第二个参数处设置的方法?

来自分类Dev

当提供函数作为第二个参数时,javascript中的替换函数不一致

来自分类Dev

如何使用Node.js,Express.js和Bluebird调用第二个“外部”函数

来自分类Dev

为什么第二个 JS 异步函数调用等待第一个完成?

来自分类Dev

在第一个查询中获取第二个查询作为字段

来自分类Dev

在第一个查询中获取第二个查询作为字段

来自分类Dev

集合上的Laravel块将第一个元素作为数组返回,第二个作为对象返回

来自分类Dev

JS:筛选对象列表以仅包含在第二个数组中找到的字符串

Related 相关文章

  1. 1

    函数第二个参数作为条件传递?

  2. 2

    第二个函数如何获取数据?

  3. 3

    两个 JS 对象,从第一个对象中获取它在第二个对象中缺少的值

  4. 4

    启动第二个JS函数

  5. 5

    返回作为第二个参数传递的数组中第一个参数的索引的函数

  6. 6

    返回一个删除了第二个对象的所有属性的js对象

  7. 7

    Angular JS:如何从控制器调用第二个服务并使用返回的对象更新DOM

  8. 8

    简单的`replace()`的第二个参数的问题

  9. 9

    从两个可能的数字(4或7)中获取一个数字并返回第二个数字的函数

  10. 10

    javassist,获取doGet方法的第二个参数

  11. 11

    如何使用* pointer从函数中获取第二个值?

  12. 12

    使用正则表达式从c源获取函数调用的第二个字符串参数

  13. 13

    忽略函数的第二个参数

  14. 14

    将函数的第二个参数读入数组

  15. 15

    将第二个参数传递给函数

  16. 16

    向lapply函数添加第二个参数

  17. 17

    函数OBJECT_ID的第二个参数

  18. 18

    函数声明中的第二个返回类型?

  19. 19

    如果id与另一个对象id相等,则获取第二个对象

  20. 20

    使用第二个参数作为十进制值在Math.pow操作中获取NaN

  21. 21

    使用第二个参数作为十进制值在Math.pow操作中获取NaN

  22. 22

    如何将选项对象作为参数传递给在jQuery()的第二个参数处设置的方法?

  23. 23

    当提供函数作为第二个参数时,javascript中的替换函数不一致

  24. 24

    如何使用Node.js,Express.js和Bluebird调用第二个“外部”函数

  25. 25

    为什么第二个 JS 异步函数调用等待第一个完成?

  26. 26

    在第一个查询中获取第二个查询作为字段

  27. 27

    在第一个查询中获取第二个查询作为字段

  28. 28

    集合上的Laravel块将第一个元素作为数组返回,第二个作为对象返回

  29. 29

    JS:筛选对象列表以仅包含在第二个数组中找到的字符串

热门标签

归档