get_data/index.js

import cavar_type from '../cavar_type'

/**
* 功能:读取复杂数据类型中是否存在当前key值以及参数
* @param {object|string|number|boolean|bigint|sybmol|array} dataObj - 目标对象
* @param {string} dataKey - 目标key值
* @param {Any} [redirectValue] - 如果找不到当前key值的参数时返回指定默认值,如果不传递默认为空对象
* @returns {Any} - 目标对象中指定查找的key值,如果没有找到或者值为undefined时返回 redirectValue 形参传递的数据
*/
function get_data(dataObj, dataKey, redirectValue = {}) {
    const task = cavar_type(dataObj);
    const dataKey_task = cavar_type(dataKey);
    if (
      task !== "undefined" &&
      task !== "null" &&
      task !== "function" &&
      dataKey_task === "string"
    ) {
      const data_task = dataObj[dataKey];
      if (data_task) {
        return data_task;
      } else {
        return redirectValue;
      }
    } else {
      let type_task, type_num;
      if (dataKey_task === "string") {
        type_task = task;
        type_num = "first";
      } else {
        type_task = dataKey_task;
        type_num = "second";
      }
      console.error(
        new Error(
          "get_data: " +
            type_num +
            " parameter " +
            " is " +
            type_task +
            " you is sb"
        )
      );
    }
  }
  export default get_data