有没有办法从Vue.js Mixin调用递归函数?

问题描述

我有一个搜索功能,可以单独使用。其目的是在JSON对象中搜索键并获取其值。

function findVal(object,key) {
var value;
Object.keys(object).some(function(k) {
    if (k === key) {
        value = object[k];
        return true;
    }
    if (object[k] && typeof object[k] === 'object') {
        value = findVal(object[k],key);
        return value !== undefined;
    }
});
return value;
}

var object =  { photo: { progress: 20 }};
console.log(findVal(object,'progress'));

// Output 20

但是,当我将其移至mixin时,它将不再起作用。该错误指出我的函数在进行递归调用时未定义。

Mixin.js

const MyMixin = { 
   findVal(object,key) {
   var value;
   Object.keys(object).some(function(k) {
      if (k === key) {
        value = object[k];
        return true;
      }
      if (object[k] && typeof object[k] === 'object') {

        // ERROR OF UNDEFINED RETURNED HERE
        value = findVal(object[k],key);
        return value !== undefined;
      }
  });
  return value;
  }
}

var object =  { photo: { progress: 20 }};
console.log(findVal(object,'progress'));

Template.vue

// Import Mixins

onClick(data) { 
    console.log(this.findVal(data,key))
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)