オブジェクトを反復処理し、JavaScriptでfalseプロパティを削除します
このようなJSONオブジェクトがあるとします-
const obj = { a: { someKey: { propOne: '', enabled: true } }, b: { someKey: { propOne: '', enabled: false } }, c: { someKey: { propOne: '', enabled: false } }, someKey: { ab: { propOne: '', enabled: true } } };
そのようなオブジェクトを1つ取り込んで、偽の値を持つオブジェクトからすべての「有効な」プロパティを再帰的に削除するJavaScript関数を作成する必要があります。
例
このためのコードは-
になりますconst obj = { a: { someKey: { propOne: '', enabled: true } }, b: { someKey: { propOne: '', enabled: false } }, c: { someKey: { propOne: '', enabled: false } }, someKey: { ab: { propOne: '', enabled: true } } }; const deleteFalsyKey = obj => { const keys = Object.keys(obj); keys.forEach(key => { if(obj[key].enabled === false){ delete obj[key]; return; }; if(obj[key] && typeof obj[key] === 'object'){ deleteFalsyKey(obj[key]); if (!Object.keys(obj[key]).length) { delete obj[key]; }; } }); }; deleteFalsyKey(obj); console.log(obj);
出力
コンソールの出力-
{ a: { someKey: { propOne: '', enabled: true } }, someKey: { ab: { propOne: '', enabled: true } } }
-
プロパティがJavaScriptを使用してオブジェクトにあるかどうかを確認できますか?
以下は、プロパティがJavaScriptのオブジェクトにあるかどうかを確認するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <s
-
JavaScriptでオブジェクトプロパティ名の配列を置き換える
以下は、JavaScriptでオブジェクトプロパティ名の配列を置き換えるコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style&g