我有一个函数将来自 AJAX 请求的结果连接在一起。
出于某种原因,我的最后一个字符串以“undefined”开头。
这是一个重现问题的简化示例:
// In practice, fetched via AJAX from a server
var vendors = [{ id_vendor: 'V0001' }, { id_vendor: 'V0002' }];
var row_vendor;
vendors.forEach(function (value) {
row_vendor += value.id_vendor;
});
alert(row_vendor); // undefinedV0001V0002Run Code Online (Sandbox Code Playgroud)
为什么警报值显示前导“未定义”?
你没有初始化你的变量,所以它的值是undefined. 连接字符串会将其强制"undefined"为连接之前的字符串。
考虑:
var x
alert(x + "test") // undefinedtest
Run Code Online (Sandbox Code Playgroud)
相反,在执行串联之前将变量初始化为空字符串:
var x = ""
alert(x + "test") // test
Run Code Online (Sandbox Code Playgroud)
请注意,从功能上讲,首先提取您感兴趣的属性然后将join它们简单地放在一起要干净得多:
$.map(vendor, function (v) { return v.vendor_id }).join('')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2103 次 |
| 最近记录: |