JavaScript对象数组:修改键名并将YES/NO转为布尔值true
解决方案:将数组对象中的"YES"/"NO"统一转换为布尔值true
嗨,我来帮你调整现有代码,实现把所有"YES"和"NO"值都转成布尔值true的需求!
修改后的完整代码
"use strict"; var data = [{ "OPEN COVER (YES or NO)": "YES" }, { "OPEN COVER (YES or NO)": "NO" }, { "OPEN COVER (YES or NO)": "YES" }]; var result = []; data.map(function (item) { var fixed = {}; var keys = Object.keys(item); keys.map(function (key) { if (key === 'OPEN COVER (YES or NO)') { // 直接将值设置为布尔true,不管原value是YES还是NO fixed['open_cover'] = true; } }); result.push(fixed); }); console.log(result);
关键修改点
在原来的键名映射逻辑里,我们不再直接把原对象的item[key]赋值给新键open_cover,而是直接赋值为布尔值true——这样不管原数据里是"YES"还是"NO",最终都会被转换成true。
额外补充(如果是笔误的常见需求)
如果你其实是想把"YES"转为true,"NO"转为false(这是更常见的场景),只需要把赋值逻辑改成下面这样就行:
fixed['open_cover'] = item[key] === 'YES';
这个表达式会在原value等于"YES"时返回true,其他情况(比如"NO")返回false,非常简洁高效。
内容的提问来源于stack exchange,提问作者Abel Masila
相关产品推荐
相关产品推荐

