javascript - 删除对象键和值中的前导和尾随空格

标签 javascript jquery

使用以下函数:

// remove multiple, leading or trailing spaces
function trim(s) {
    s = s.replace(/(^\s*)|(\s*$)/gi,"");
    s = s.replace(/[ ]{2,}/gi," ");
    s = s.replace(/\n /,"\n");
    return s;
}

删除值中的前导和尾随空格不是问题。我知道您不能重命名键,但我很难获得我想要的输出。

$.each(data, function(index)
    {
        $.each(this, function(k, v)
        {
            data[index][trim(k)] = trim(v);
            data.splice(index, 1);
        });
    });

这没有达到预期的输出。

有什么想法吗?最好创建一个新对象然后销毁原始对象吗?该语法是什么样的?

数据示例:

var data = [{
    "Country": "Spain",
    "info info1": 0.329235716,
    "info info2": 0.447683684,
    "info info3": 0.447683747},
{
    " Country ": " Chile ",
    "info info1": 1.302673893,
    "info info2 ": 1.357820775,
    "info info3": 1.35626442},
{
    "Country": "USA",
    "info info1  ": 7.78805016,
    "info info2": 26.59681951,
    "info info3": 9.200900779}];

最佳答案

$.each(data, function(index) {
    var that = this;
    $.each(that, function(key, value) {
        var newKey = $.trim(key);

        if (typeof value === 'string')
        {
            that[newKey] = $.trim(value);
        }

        if (newKey !== key) {
            delete that[key];
        }
    });
});

演示:http://jsfiddle.net/mattball/ZLcGg/

关于javascript - 删除对象键和值中的前导和尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10094617/

相关文章:

php - 仅使用 javascript 生成和保存/下载文件

javascript - innerHTML 不会在每个 keydown 事件中改变

javascript - 是否有更紧凑的方法来检查数字是否在某个范围内?

javascript - 使用 <button> 与页面的所有形式交互

jquery - 日期时间选择器 UI 无法正常工作

添加和删​​除 li 元素时的 jQuery 冲突(?)

javascript - 使用 JQuery Ajax 提交表单不在服务器中工作,但在本地主机中工作 codeigniter

javascript - Rxjs 递归与 bindcallback

javascript - 如何匹配不在括号和引号中的文本?

javascript - 设置 Iframe 的高度等于其内容