我正在与返回响应的 Web 服务进行通信。响应可以包含错误集合。我需要遍历集合并连接所有原因。这是代码:

var errorText = "";

for ( var i = 0; i < response.errors.count; i++ ) {
    errorText += response.errors[i].reason;
}

这有效!但我认为必须有一种更好的紧凑方式。

最佳答案

一个foreach?

var errorText = "";
response.errors.forEach(function(element) {
    errorText += element.reason;
});

编辑:一些澄清。

foreach 比 for 循环更好,尤其是因为 JavaScript 不强制执行连续元素。

假设你的数组是这样的:{1, 2, 3, undefined, 4, 5, 6, undefined, 7}for 循环显然会迭代包括未定义的值,而 forEach 不会。

请注意,如果您使用的是对象而不是数组,则 forEach 将不起作用。您将需要:
var errorText = "";
Object.keys(response.errors).forEach(function(key) {
    errorText += response.errors[key];
});

在处理对象时,这比 forfor ... in 好得多。但是在这种情况下,我假设它是一个数组,但没有更多信息我无法确定。

关于javascript - 在 JavaScript 中连接自定义对象数组的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34188205/

10-09 20:05