Angular项目中如何将含'None'的对象数组属性仅保留'None'值
解决方案
你可以直接通过遍历对象属性判断数组是否包含'None'来实现需求,以下是适配Angular TypeScript环境的代码:
方案1:直接修改原对象
const obj = { fruits: ['apple', 'orange', 'None'], nation: ['usa'], city: ['New York', 'Delhi', 'None'], name: ['one', 'two'], }; Object.keys(obj).forEach(key => { const currentArray = obj[key]; // 判断当前数组是否包含'None' if (currentArray.includes('None')) { // 直接替换为仅含'None'的数组 obj[key] = ['None']; } });
方案2:生成新对象(不修改原数据,推荐Angular场景使用)
如果你的项目中使用了状态管理、输入属性传递等需要避免数据突变的场景,可以选择生成新对象的写法:
const processedObj = Object.fromEntries( Object.entries(obj).map(([key, valueArr]) => [ key, valueArr.includes('None') ? ['None'] : [...valueArr] ]) );
兼容性说明
如果你的项目需要兼容低版本浏览器,可将valueArr.includes('None')替换为valueArr.indexOf('None') !== -1,逻辑完全等价。
运行后得到的processedObj/修改后的obj完全符合你给出的预期结果。
内容的提问来源于stack exchange,提问作者imjayabal
相关产品推荐
相关产品推荐

