如果数组为空则转义以避免错误
escape if array is empty to avoid error
for(var i=0;i < obj.length; i++){
obj[i].split(",");
}
上面的代码给了我未定义的拆分,这是因为我的最后一项 obj 是一个看起来像这样的数组
[""]
如何解决这个问题?
循环访问项目,当且仅它是字符串类型并且
obj[i]
是真值
var obj = ['', null, 100, undefined, 'abc,test'];
for (var i = 0; i < obj.length; i++) {
if (typeof obj[i] === 'string' && obj[i]) {
var test = obj[i].split(",");
console.log(test);
}
}
在这里摆弄
如果您的数组不包含数字(如零(或布尔值(如 true
(,那么您可以这样做:
for( var i = 0; i < obj.length; i++ ) {
( obj[i] || "" ).split(",");
}
在我看来,
您指的是空字符串而不是未定义的字符串,如果我错了,请纠正我。 如果它是不同于空字符串的"未定义"值,则提供您的列表会有所帮助。 如果它确实是一个空字符串,只需使用 if 条件跳过它。
for (i = 0; i < obj.length; i++) {
if (obj[i] != '') {
obj[i].split(',');
}
}
首先,你正在做的事情对你的代码没有任何意义。
即;
var obj = { a : "there,are,commas", b : "no commas" } ;
// next line of code doesnt do anything,
//just returns undefined on console.
obj["a"].split(",");
一堆未定义的 s 就是因为这个事实。当然,在控制台上。
// if you want to use it, you might have assigned it to a variable
var someVariable = obj["a"].split(",");
所以你的问题可能是不同的。
你应该在你的数组上调用toString,或者通过在obj[i]上使用toString方法更突出地使所有内容成为字符串。
var obj = ["23",[""]]
for(var i=0;i < obj.length; i++){
if(!obj[i].toString()==""){
console.info(obj[i].split(","));
}
}
在下面摆弄实用。
https://jsfiddle.net/stm0qemn/1/
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- jshint 错误:“EOL 转义错误.如果需要,请使用选项 multistr“,但 multistr 是正确的
- 如何在 jshint 中删除
的错误转义警告 - Javascript JSON 返回带有未转义字符的错误
- Firefox JavaScript 转义错误
- 如果数组为空则转义以避免错误
- EOL转义错误
- jquery附加了很多html(得到“未终止字符串文字”或“错误转义”错误)
- 数字正则表达式导致jshint'错误或不必要的转义'错误
- 在Javascript中转义错误消息
- JQuery表单验证:当有转义JSON时不显示错误消息
- Django.Jquery.用引号转义字符串错误
- MediaWiki中的MathJax:显示转义语法,控制台有404个错误
- 将JSTL变量放入Javascript时出现转义错误
- 忽略jslint '不必要的擒纵'unicode转义序列错误
- 使用转义函数会抛出js错误,因为文本中存在特殊字符
- Window.Open()转义错误
- 转义字符生成“;缺少)在参数列表“”之后;错误