我有一个数组显示此值“135_1,undefined,undefined”
我必须在上面的数组中找到“undefined”,然后将其替换为“0_0”。未定义可以在数组中多次出现。
我用过
var extra = myVariable.replace("undefined", "0_0");
alert(extra);
然后我必须使用这三次,这样每次都可以搜索一次并替换它。
我也用过这个::
for (var i = 0; i < myVariable.length; i++) {
alert(myVariable[i]);
myVariable[i] = myVariable[i].replace(/undefined/g, '0_0');
}
alert(myVariable);
但它没有解决我的目的。
答案 0 :(得分:0)
String.prototype.replace
是字符串可访问的方法。 undefined
不是字符串。
这可能会对你有帮助。
for (var i=0, len=arr.length; i<len; i++) {
if (arr[i] === undefined) {
arr[i] = "0_0";
}
}
alert(JSON.stringify(arr));
您也可以使用Array.prototype.map。请注意,它仅适用于IE >= 9
arr = arr.map(function(elem) {
return elem === undefined ? "0_0" : elem;
});
答案 1 :(得分:0)
var extra = $.map(myVariable, function(item) {
return item || '0_0';
}
这将返回一个新数组,其中每个项目包含(在您的情况下)空字符串或undefined
被'0_0'
替换。
答案 2 :(得分:0)
var arr = ['135_1',undefined,undefined];
while(arr.indexOf(undefined) != -1) {
pos=arr.indexOf(undefined);
arr[pos]='0_0';
}