私は以下のようなオブジェクト内に存在するすべてのプロパティ/サブプロパティ上で実行する必要がsanitizeStr()
機能があります。問題は、これらのプロパティのすべての単一の1のために、彼らはよく、またはかもしれないということです複雑なオブジェクトのすべての文字列値をサニタイズしますか?
const data = {
info: 'schools',
schools: [
{ name: 'Johnson Elementary', type: 'elementary' },
{ name: 'Iselin Middle School', type: 'middle' }
],
bestStudent: {
name: 'John',
grade: 'sixth'
}
};
を存在しない。今、私が各プロパティに対して複数のif
のチェックを行うことを抱えていると、手動で機能を実行している:
// Is there a better way to do this rather than what I have here:
if (data.info) {
data.info = sanitizeStr(data.info);
}
if (data.bestStudent) {
if (data.bestStudent.name) {
data.bestStudent.name = sanitizeStr(data.bestStudent.name);
}
if (data.bestStudent.grade) {
data.bestStudent.grade = sanitizeStr(data.bestStudent.grade);
}
}
if (data.schools) {
data.schools.forEach((school, i) => {
if (school.name) {
data.schools[i].name = sanitizeStr(school.name);
}
if (school.grade) {
data.schools[i].grade = sanitizeStr(school.grade);
}
});
}
誰もがこれを行うためのクリーナー/以下、マニュアルの方法を知っている場合は、それをいただければ幸いです。
'sanitizeStr'は何をしているのですか?機能を追加してください。 –
私はそれがかなり関連しているとは思わないので、私はそれを含めなかった - それはちょうどいくつかの文字列の置換を行います。私は基本的には、手動で1つずつ行う必要なしに、すべてのプロパティでその関数を実行するためのより良い方法を見つけようとしています。 – saadq
[オブジェクトのプロパティを反復する]の複製があります。(0120-18751) –