在JavaScript中连接自定义对象数组的字符串
Concatenate Strings of Custom Object Array in JavaScript
我正在与一个返回响应的web服务通信。响应可以包含错误集合。我需要遍历集合并连接所有原因。这是代码:
var errorText = "";
for ( var i = 0; i < response.errors.count; i++ ) {
errorText += response.errors[i].reason;
}
这很管用!但我认为必须有一种更紧凑的方式。
使用Array.prototype.map和Array.prototype.join
var response = {
errors: [{
reason: 'invalid username'
}, {
reason: 'invalid password'
}, {
reason: 'required field'
}]
};
var errorText = response.errors.map(function(errorObject) {
return errorObject.reason;
}).join('');
/*with shorter ES6 syntax
var errorText = response.errors.map(errorObject => errorObject.reason).join('');
*/
console.log(errorText);
前臂?
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];
});
当使用对象时,这比for
或for ... in
要好得多。然而,在这种情况下,我假设它是一个数组,但如果没有更多信息,我无法确定。
使用一个内衬和ES6 的乐趣
const errorText = response.errors.map(err => err.reason).join(" ");
http://jsfiddle.net/ya26m2dq/1/
相关文章:
- 高亮显示与数组字符串一起使用时文本插件中断
- 从数组/字符串中删除所有小数和单个数字
- 使用Javascript regex替换“index”数组字符串
- 如何将复选框中的选中值收集为 javascript 数组/字符串
- 将数组数组字符串转换为 Javascript 数组数组的优雅方法
- 如何将数组字符串转换为数组
- 通过数组字符串访问JavaScript对象中的值
- Javascript数组字符串作为图像键
- Chrome和Firefox正在检索字符,而不是javascript中的数组字符串
- 如何在 JavaScript 函数中从 PHP end 传递数组字符串作为参数
- Jquery 如何检查数组字符串值是否在文本区域中
- 如何转换数组字符串
- JS数组字符串将名称修补到数组(对象)
- 在Javascript中从数组字符串中查找单个或多个值
- 如何将java数组字符串分配给javascript数组字符串
- 如何在javascript中将子数组字符串的数组转换为子数组的数组?
- 如何将字符串中的特殊值放入数组字符串
- 如何在JavaScript中给出RouteUrl中的数组字符串
- 在javascript的for循环中设置数组's字符串元素的长度为一个变量
- 如何从“数组字符串”中获取键值在javascript