JavaScript实现数组内所有对象属性值转为小写
JavaScript实现对象数组属性值全转小写
你可以通过遍历数组中的每个对象,再遍历对象的所有属性,将字符串类型的属性值转换为小写来实现需求。以下是两种可行的实现方式:
方式一:ES6+ 简洁写法
利用Array.map、Object.entries和Object.fromEntries实现,代码更简洁:
const array_pairs = [ { "name": "Master", "contract": "asxcxcx", "deployer": "BCCCCCC" }, { "name": "Master2", "contract": "bcxcssDA", "deployer": "ttttttttTTtttttt" } ]; const convertToLowerCase = arr => { return arr.map(obj => Object.fromEntries( Object.entries(obj).map(([key, value]) => [ key, typeof value === 'string' ? value.toLowerCase() : value ]) ) ); }; // 得到转换后的新数组 const lowerCasedArray = convertToLowerCase(array_pairs); console.log(lowerCasedArray);
代码说明:
Array.map:遍历原数组,返回一个新数组,不会修改原数据Object.entries(obj):将对象转换为键值对数组(如[['name', 'Master'], ...])Object.fromEntries:将处理后的键值对数组重新转换为对象- 类型判断
typeof value === 'string':确保只有字符串类型的值才执行小写转换,避免非字符串类型(如数字、布尔值)出现错误
方式二:兼容旧环境写法
如果需要兼容ES6之前的JavaScript环境,可以使用传统的循环写法:
const array_pairs = [ { "name": "Master", "contract": "asxcxcx", "deployer": "BCCCCCC" }, { "name": "Master2", "contract": "bcxcssDA", "deployer": "ttttttttTTtttttt" } ]; const convertToLowerCase = arr => { const result = []; for (let i = 0; i < arr.length; i++) { const currentObj = arr[i]; const lowerObj = {}; for (const key in currentObj) { // 确保只处理对象自身的属性(排除原型链上的属性) if (currentObj.hasOwnProperty(key)) { const value = currentObj[key]; lowerObj[key] = typeof value === 'string' ? value.toLowerCase() : value; } } result.push(lowerObj); } return result; }; const lowerCasedArray = convertToLowerCase(array_pairs); console.log(lowerCasedArray);
代码说明:
- 外层循环遍历数组中的每个对象
- 内层循环遍历对象的每个属性,通过
hasOwnProperty确保只处理对象自身的属性 - 同样加入字符串类型判断,保证转换的安全性
两种方式最终都会得到你期望的结果,你可以根据项目的环境需求选择合适的写法。
内容的提问来源于stack exchange,提问作者python_rok
相关产品推荐
相关产品推荐

