使用js,將數據中字段爲空的值全部替換爲"--"

需求:將下面數組或者對象中的字段爲空的值全部替換爲"--"

let tempArr = [
  { domain: "a", index_name: "" },
  { domain: "b", index_name: "遞歸" },
  { domain: "c", index_name: "-" },
  { domain: "d", index_name: "遍歷" },
  { domain: "e", index_name: "雲淡風輕" },
  { domain: "f", index_name: "雲淡風輕" },
  { domain: "g", index_name: "遞歸" }
];
let tempArrA = ["遞歸", "", "遞歸", "遞歸", "遞歸", "-", "遞歸"];
let tempArrB = [
  [
    { domain: "a", index_name: "" },
    { domain: "b", index_name: "遞歸" },
    { domain: "c", index_name: "" },
    { domain: "d", index_name: "遍歷" },
    { domain: "e", index_name: "雲淡風輕" },
    { domain: "f", index_name: "雲淡風輕" },
    { domain: "g", index_name: "遞歸" }
  ],
  [
    { domain: "a", index_name: "" },
    { domain: "b", index_name: "遞歸" },
    { domain: "c", index_name: "" }
  ],
  [
    { domain: "a", index_name: "" },
    { domain: "e", index_name: "雲淡風輕" },
    { domain: "f", index_name: "雲淡風輕" },
    { domain: "g", index_name: "遞歸" }
  ]
];
let tempObj = {
  domain: "a",
  index_name: "",
  index_code: "-"
};

解決辦法:

export const formateNullFieldData = initialData => {
  // 判定數據是否爲對象或者數組
  if (typeof initialData !== 'object') {
    return '請傳入正確格式的對象或者數組'
  }
  // 當數據爲數組時
  if (initialData instanceof Array) {
    initialData.forEach((val, key) => {
      if (val instanceof Array) {
        // 當數據爲多維數組時
        return formateNullFieldData(val)
      } else if (val instanceof Object) {
        // 數組中爲對象時
        for (let pro in val) {
          if (val[pro] === '' || val[pro] === '-') {
            val[pro] = '--'
          }
        }
      } else {
        // 數組中爲基本數據類型時
        if (val === '' || val === '-') {
          initialData[key] = '--'
        }
      }
    })
    // 當數據爲對象時
  } else if (initialData instanceof Object) {
    for (let pro in initialData) {
      if (initialData[pro] === '' || initialData[pro] === '-') {
        initialData[pro] = '--'
      }
    }
  }
  return initialData
}

使用:formateNullFieldData(tempArr)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章