我有一个对象:
z = {x: 'HHjjhjhHHHhjh', y: 'YYYYY', c: 'ssss'}
我需要将所有的值转换为小写字母。
z = {x: 'hhjjhjhhhhhjh', y: 'yyyyy', c: 'ssss'}
如何一次性完成这个操作,也许可以使用lodash?目前我正在执行以下操作:
z.x = z.x.toLowerCase()
z.y = z.y.toLowerCase()
z.c = z.c.toLowerCase()
我有一个对象:
z = {x: 'HHjjhjhHHHhjh', y: 'YYYYY', c: 'ssss'}
我需要将所有的值转换为小写字母。
z = {x: 'hhjjhjhhhhhjh', y: 'yyyyy', c: 'ssss'}
z.x = z.x.toLowerCase()
z.y = z.y.toLowerCase()
z.c = z.c.toLowerCase()
_.mapValues(objs, function(s){ return _.isString(s) ? s.toLowerCase() : s; });
。
来源: http://stackoverflow.com/questions/15510712/lowercase-of-object-value-in-array-with-underscore-js - Simo D'lo Mafuxwana很多你可能会使用 Lodash 的东西在 ES6/ES2015 中都可以很容易地实现。例如,在这种情况下,你可以:
var z = { x: 'HHjjhjhHHHhjh', y: 'YYYYY', c: 'ssss' };
var y = Object.keys(z).reduce((n, k) => (n[k] = z[k].toLowerCase(), n), {});
console.log(y);
// { x: 'hhjjhjhhhhhjh', y: 'yyyyy', c: 'ssss' }
在JavaScript中,您可以使用for...in
循环迭代对象的键:
var z = {x: 'HHjjhjhHHHhjh', y: 'YYYYY', c: 'ssss'};
for(var i in z) {
z[i]= z[i].toLowerCase();
}
console.log(z);
Object.keys(z).forEach(function ( key ) {
z[key] = z[key].toLowerCase();
});
可能有更短的语法。
如果您不想使用lodash,可以使用Object.keys和Array.prototype.reduce来解决问题:
var z = {x: 'HHjjhjhHHHhjh', y: 'YYYYY', c: 'ssss'};
var lowerZ = Object.keys(z).reduce(function(obj, currentKey) {
obj[currentKey] = z[currentKey].toLowerCase();
return obj;
}, {});
CoffeeScript 解决方案:
z = x: 'HHjjhjhHHHhjh', y: 'YYYYY', c: 'ssss'
for key, val of z
z[key] = val.toLowerCase()