【问题标题】:Removing Leading Space from JSON Keys and Values Using AngularJS使用 AngularJS 从 JSON 键和值中删除前导空格
【发布时间】:2023-04-07 13:55:01
【问题描述】:

我将以我得到的 JSON 来自 angular-csv-import 的事实作为开头,我正在尝试清理键、值中的字符串。

我已经阅读了这个帖子,但我不想使用 JQuery,所以我编辑成更棱角分明的方式。

Remove leading and trailing spaces in object keys and values

这是我从 CSV 文件中获取的数据

[
 {
"TRAIN_LINE":"El",
" ROUTE_NAME":"Brown Line",
" RUN_NUMBER":"E102",
" OPERATOR_ID":"SJones"
 },
 {
"TRAIN_LINE":"Metra",
" ROUTE_NAME":"UPN",
" RUN_NUMBER":"M405",
" OPERATOR_ID":"AJohnson"
 }
]

要将数据发送到我的 api,我需要它没有前导或尾随空格,以尽量减少清理并保持一致,无论上传的 csv 文件是什么。

我可以在键和值上使用 .trim() 删除空格,但它不会在我要发送到服务器的数据集中更新。非常感谢任何帮助。这是我的控制器中的代码。

$scope.postData = function (result) {
    angular.forEach(result, function (index) {     
        angular.forEach(index, function (k, v) {
            k = k.trim();
            v = v.trim();
            return k;
            return v;       
        });
        return index;
        console.log(index);
    });
    console.log(result);     
};

请注意,如果我记录 k 和 v 空格被删除,但我如何将其推送到结果中。

【问题讨论】:

  • 哇。为什么在嵌套的forEach 循环中执行两个返回语句
  • 第二,我假设result 是一个数组?
  • 是的,结果是一个包含对象的数组。不知道我为什么要做 2 次退货,可能是出于沮丧和猜测。

标签: javascript json angularjs csv


【解决方案1】:

另一个答案会起作用,但我认为这更像是你想要的风格。还要注意parameters are v, k.

angular.forEach(results, function (index) {     
  angular.forEach(index, function (v, k) {
    delete index[k];
    index[k.trim()] = v.trim();
  });
});

【讨论】:

  • 这也可以,但它会删除一个没问题的 k,v 对。 TRAIN_LINE 被删除。
  • 在更少的行中工作得很好。
【解决方案2】:
$scope.postData = function (results) {

    var newResults = [];

    angular.forEach(results, function (index) {

        var newObj = {}; // cue the trumpets

        angular.forEach(index, function (v, k) {
            k = k.trim();
            v = v.trim();
            newObj[k] = v;      
        });

        newResults.push(newObj);

        return index;
        console.log(index);
    });

    console.log(newResults);     
};

【讨论】:

  • 是的!!!!这几乎做到了。除了现在键和值是向后的,虽然很容易修复。只需要这样做 angular.forEach(index, function (k, v) { k = k.trim(); v = v.trim(); newObj[v] = k; });
  • 字。我会更新我的答案,以反映这一点。干杯伙计。不要忘记点击答案复选标记:]。
猜你喜欢
  • 2019-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-20
  • 2015-11-15
相关资源
最近更新 更多