gpt4 book ai didi

javascript - 将数组中的所有键从js中的下划线转换为驼峰大小写

转载 作者:行者123 更新时间:2023-11-29 16:50:27 25 4
gpt4 key购买 nike

因此,我需要将数组中的所有键从下划线转换为 js 中的驼峰空格。这就是我在将表单发送到服务器之前需要做的。我正在使用 Angular.js 并且我想将它表示为一个过滤器(但我认为在这种情况下它并不重要)。不管怎样,这是我创建的一个函数。

.filter('underscoreToCamelKeys', function () {
return function (data) {

var tmp = [];
function keyReverse(array) {
angular.forEach(array, function (value, key) {
tmp[value] = underscoreToCamelcase(key);
});

return tmp;
}

var new_obj = {};
for (var prop in keyReverse(data)) {
if(tmp.hasOwnProperty(prop)) {
new_obj[tmp[prop]] = prop;
}
}
return new_obj;
};

function underscoreToCamelcase (string) {
return string.replace(/(\_\w)/g, function(m){
return m[1].toUpperCase();
});
}
})

在这里我将尝试解释它是如何工作的,因为一开始它看起来很糟糕。

underscoreToCamelcase 函数只是将下划线中的任何字符串恢复为 came case,除了第一个字符(像这样 some_string => someString)

所以,正如我之前所说,我应该将所有键恢复为驼峰式大小写,但如您所知,我们不能简单地写成

date[key] = underscoreToCamelcase(key)

所以 keyReverse 函数返回一个还原的数组,这里是例子

some_key => value

会是

value => someKey

最后我简单地还原键和值,得到这个

someKey => value

但是,正如您可能已经理解的那样,我遇到了一个问题,如果数组中存在相同的值,那么这些数据将会消失

数组

some_key1 => value,some_key2 => value

返回为

someKey2 => value

那我该如何解决呢?我有一个建议检查这些值是否存在以及是否添加了一些特殊的子字符串,就像这样

some_key1 => value,some_key2 => value

value => someKey1,zx99value => someKey2

毕竟为 zx99 解析它,但我想我要疯了......在这种情况下,也许有人有更好的解决方案?

重要!他们的主要问题不仅仅是将一些字符串转换为驼峰式大小写,而是使用数组键来完成!

最佳答案

如果您使用现有库进行驼峰式转换,则可以像这样缩减对象

import {camelCase} from 'lodash/string'

const camelCaseKeys = (obj) =>
Object.keys(obj).reduce((ccObj, field) => ({
...ccObj,
[camelCase(field)]: obj[field]
}), {})

关于javascript - 将数组中的所有键从js中的下划线转换为驼峰大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36508778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com