有没有人知道一个好方法可以把这个转换成:?
var obj = [{key1: value1,key2: value2},{key3: value3,key4: value4}];
转化为:
var obj = [{Key1: value1,Key2: value2},{Key3: value3,Key4: value4}];
有没有人知道一个好方法可以把这个转换成:?
var obj = [{key1: value1,key2: value2},{key3: value3,key4: value4}];
转化为:
var obj = [{Key1: value1,Key2: value2},{Key3: value3,Key4: value4}];
循环删除和替换:
var obj = [{key1: 1,key2: 1},{key3: 1,key4: 1}];
for(var i = 0; i<obj.length;i++) {
var a = obj[i];
for (var key in a) {
if (a.hasOwnProperty(key)) {
a[key.charAt(0).toUpperCase() + key.substring(1)] = a[key];
delete a[key];
}
}
obj[i] = a;
}
{key1:1, Key1:2}
最终会变成{Key1:1}
。(此外,在for
之后的obj[i] = a;
是多余的,不是吗?) - nnnnnnObject.fromEntries
方法:
let populations = {london: 8.9, beijing: 21.54, mumbai: 18.41}; // March 2020
let entries = Object.entries(populations);
let capsEntries = entries.map((entry) => [entry[0][0].toUpperCase() + entry[0].slice(1), entry[1]]);
let capsPopulations = Object.fromEntries(capsEntries);
console.log(capsPopulations);
entries.map(([k, v]) => [k[0].toUpperCase() + k.slice(1), v])
。 - Scott Sauyetimport * as _ from 'lodash';
function capitalizeObjectKeys(obj) {
return _.transform(obj, (result, val, key) => {
result[key.charAt(0).toUpperCase() + key.slice(1)] = val;
});
}
这将会帮助你:
const griddata = [
{
"id_pk": 238,
"acT_ID": 238,
"desc": "Record 2",
"parent": 0,
"compdays": 5,
"logical": "1",
"quantity": "1",
"lisT_ID": 75,
"empL_ID": 1388,
"default": 8,
"level": "0",
"sortorder": 2,
"vfpRecNo": 0,
"isDeleted": false,
"clientID": 1,
"empl_num": "1388",
"duedate": "05/04/2022"
}
]
const upperCaseKeys = (data) => {
debugger;
let gridData = [];
if (data != null && data != undefined && data.length > 0) {
let keys = Object.keys(data[0]);
let upperCaseKey = [];
for (let j = 0; j < data.length; j++) {
upperCaseKey = [];
for (let i = 0; i < keys.length; i++) {
set(upperCaseKey, keys[i].toUpperCase(), data[j][keys[i]]);
}
upperCaseKey.push(...upperCaseKey);
gridData.push(Object.assign({}, upperCaseKey));
}
}
console.log("upperCaseKeys",gridData)
}
const set = (obj, prop, value) => {
obj[prop] = value;
}
upperCaseKeys(griddata)
输出:
upperCaseKeys [
{
ID_PK: 238,
ACT_ID: 238,
DESC: 'Record 2',
PARENT: 0,
COMPDAYS: 5,
LOGICAL: '1',
QUANTITY: '1',
LIST_ID: 75,
EMPL_ID: 1388,
DEFAULT: 8,
LEVEL: '0',
SORTORDER: 2,
VFPRECNO: 0,
ISDELETED: false,
CLIENTID: 1,
EMPL_NUM: '1388',
DUEDATE: '05/04/2022'
}
]
转成大写:
const newDataUpperCase = data.map( function( item ){
for(var key in item){
var upper = key.toUpperCase();
if( upper !== key ){
item[ upper ] = item;
delete item[key];
}
}
return item;
});
转换为小写:
const newDataUpperCase = data.map( function( item ){
for(var key in item){
var lower= key.toLowerCase();
if( lower!== key ){
item[ lower] = item;
delete item[key];
}
}
return item;
});
如果你只需要将首字母大写,可以使用Jeremiah的回答
或者如果你需要将每个单词的首字母都大写,可以考虑以下方法
let populations = {"london": 8.9, "beijing": 21.54, "mumbai": 18.41, "new york": 19.4};
let entries = Object.entries(populations);
// Capitalize first letter of each word
let capsEntries = entries.map((entry) => [entry[0].replace(/(^\w{1})|(\s+\w{1})/g, letter => letter.toUpperCase()), entry[1]]);
let capsPopulations = Object.fromEntries(capsEntries);
console.log(capsPopulations)
正则表达式采用自这个答案
正则表达式解释:
(^\w{1})
:匹配字符串的第一个字符|
:或(\s{1}\w{1})
:匹配一个紧随一个空格后出现的字符g
:全部匹配 const transform = (arrObj) => {
let newObj=[];
for(let obj of arrObj) {
let temp=new Object();
let keys = Object.keys(obj);
let values = Object.values(obj);
let i=0;
keys.forEach(key => {
key=key[0].toUpperCase() + key.slice(1);
temp[`${key}`]=values[i++];
});
newObj.push(temp);
}
return newObj;
};
const arrObj = [{first: 'satya', last:'prakash'}, {college: 'AIT'}];
console.log(transform(arrObj));
使用 Lodash 的 _.capitalize 函数
_.capitalize('firstName') => FirstName