需求:將下面數組或者對象中的字段爲空的值全部替換爲"--"
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)