替换数组中的多个字符串项

时间:2014-03-06 08:14:03

标签: javascript jquery arrays

我有一个数组显示此值“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);

但它没有解决我的目的。

3 个答案:

答案 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)

由于问题标有,您可以使用$.map()

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';
}