danger_man
2021-05-12 15:21
采纳率: 100%
浏览 107
已采纳

Node.js 对象可以打出来,但对象的right_id属性就undefined了,这是怎么回事?

function unique(arr) {
  let array = [];
  // let obj = {};
  for (let i = 0; i < arr.length; i++) {
    let obj = arr[i];
    let params = array.findIndex(item => {
      item.right_id == obj.right_id;
    });
    console.log("第" + i);
    console.log(obj);
    console.log(obj._id);
    console.log(obj.right_id);
    console.log(params);
    params == -1 ? array.push(obj) : "";
  }
  return array;
}

方法是这样的

结果是这样的

对象里的_id 属性值可以打出来,但是right_id 就不行了

有大佬能告诉我这是怎么回事吗

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • danger_man 2021-06-01 15:03
    已采纳

    感谢各位的回答,原因已经找出,是因为该字段为我后来加到表中的,在创建集合规则时没有补充该字段,导致在查询后,打不出该字段

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • let array = [];这个都是空的,哪里来的right_id这个属性呀。

    评论
    解决 无用
    打赏 举报
  • CSDN专家-link 2021-05-12 15:25

    那你调试一下,在log时obj.right_id到底有没有值啊

    评论
    解决 无用
    打赏 举报
  • iMingzhen 2021-05-12 15:26

    第一次循环的时候array数组为空

    评论
    解决 无用
    打赏 举报
  • 神奇,json能打印出,下一步尽然没有值了,没有其他异步方法在操作arr数组吧。。。~~

    还有findIndex箭头函数要么直接let params = array.findIndex(item =>item.right_id == obj.right_id);

     

    let params = array.findIndex(item => {return item.right_id == obj.right_id;});

     

    要不params永远是-1

     

     

    评论
    解决 无用
    打赏 举报
  • danger_man 2021-05-12 15:42
    function unique(arr) {
      let array = [];
      for (let i = 0; i < arr.length; i++) {
        let obj = arr[i];
        console.log("第" + i);
        console.log(obj);
        console.log(obj._id);
        console.log(obj.right_id);
      }
      return array;
    }

    只是循环打印,结果也是这样

    评论
    解决 无用
    打赏 举报
  • 你的arr是不是在异步里的

    评论
    解决 无用
    打赏 举报
  • 码农·小文 2021-05-12 16:31
    function unique(arr) {
      let array = [];
      // let obj = {};
      for (let i = 0; i < arr.length; i++) {
        let obj = arr[i];
        let params = array.findIndex(item => {
          item.right_id == obj.right_id;
        });
        console.log("第" + i);
        console.log(JSON.stringify(obj));
        console.log(obj._id);
        console.log(obj.right_id);
        console.log(params);
        params == -1 ? array.push(obj) : "";
      }
      return array;
    }

    你这样打印试试,obj里应该不会有right_id了

    评论
    解决 无用
    打赏 举报
  • 有问必答小助手 2021-05-12 18:29

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    评论
    解决 无用
    打赏 举报
  • 有问必答小助手 2021-05-13 15:40

    非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

    速戳参与调研>>>https://t.csdnimg.cn/Kf0y

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题