【问题标题】:How to iterate an object in angularjs?如何在angularjs中迭代一个对象?
【发布时间】:2017-09-30 21:05:44
【问题描述】:

我的一个 angularjs 函数有一个对象。

var obj = this.getPersonObject();

我不确定该对象中会存在哪些所有属性,因为此函数位于第三方库中。

我需要遍历该对象的所有属性并转义 html 字符(如果有)。

在我的脑海中,我想到了这个:

for(var key in obj){
      var escapedHtml = escapeHTMLChars(obj[key]);
      obj[Key] = escapedHtml;
   }

还有其他更好的方法吗?

我也有lodash,请问lodash中的任何预建函数,有什么帮助吗?

【问题讨论】:

  • 如何更好?你的for-in 循环有什么问题?

标签: javascript html angularjs sanitize


【解决方案1】:

您的方法很好,但是,您也可以使用 AngularJs 的 forEach 函数。 Link

var output = {};
angular.forEach(obj, function(value, key) {
   output[key] = escapeHTMLChars(value);
});

【讨论】:

  • 我想要一种不同的方法,因为这不是正确的操作方式。也就是说,不在循环内修改对象的值。
  • @nowhewhomustnotbenamed.:在forEach(或for-in)循环中修改属性的值非常好。
  • @T.J.Crowder 感谢您澄清...在 C# 或 .NET 中,不建议我在迭代期间修改或删除 foreach 循环中的值。所以,我认为它是特定于语言的?
  • @nowhewhomustnotbenamed.: 修改不同于删除。修改 C# foreach 循环中的条目非常尴尬(尽管有可能),通常如果需要,您会改用 for
  • @nowhewhomustnotbenamed.:这取决于所使用的迭代机制,但不,这并不是普遍的坏习惯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 1970-01-01
相关资源
最近更新 更多