次の関数を使用します。
// 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}];