删除数组Javascript中的所有字符串实例

时间:2016-05-08 14:29:46

标签: javascript arrays string text

假设我有一个包含以下内容的数组:@@@

我想删除###function removeText(start, end, array) { var newArray = []; for (var i = 0; i < array.length; i++) { var text = array[i]; text.split(start).join(""); text.split(end).join(""); newArray.push(text); } return newArray; } 的所有实例。我尝试使用以下函数执行此操作,但返回的数组完全相同,如此fiddle中所示:

function diceResult(){

var whichNumber = 123; // this number will change, depending on sum of dice rolled

var getTextNumber = new Array (9)
getTextNumber[0] = "zero";
getTextNumber[1] = "one";
getTextNumber[2] = "two";
getTextNumber[3] = "three";
getTextNumber[4] = "four";
getTextNumber[5] = "five";
getTextNumber[6] = "six";
getTextNumber[7] = "seven";
getTextNumber[8] = "eight";
getTextNumber[9] = "nine";

var zeroValue = getTextNumber[whichNumber];

var getZero = diceToolbarCounterWrapper.getElementsByTagName("li");

    getZero[2].className = zeroValue.slice(2, -0; /* <------ I tried this */
    getZero[1].className = zeroValue.slice(1, -1);
    getZero[0].className = zeroValue.slice(0, -1);

};

我认为有一些非常简单的原因,我无法让它工作,所以任何帮助将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:2)

split方法不会修改原始字符串,而是返回一个新值,因此请确保将其重新分配给文本,以便实际修改array[i]实例:

text = text.split(start).join("");
text = text.split(end).join("");

这是你的updated fiddle

答案 1 :(得分:0)

如何给出:

var myArray = [
      "@@@Some Text###",
      "@@@More Text###",
      "@@@Even more Text###",
      "@@@Even Even More Text###"];

然后你可能

myArray = myArray.map(function(item){
    return item.replace("@@@", "").replace("###", "");
});

答案 2 :(得分:0)

在现代JS中:

>>> d1 = {'A':3,'B':5,'C':2}
>>> d2 = {'A':2,'B':5,'C':3}
>>> crossEntropy(d1,d2)
1.54397154729945

在现实世界中,您希望转义function removeText(start, end, array) { let regexp = new Regexp(`^${start}|${end}$`, 'g'); return array.map(elt => elt.replace(regexp, ''); } start来处理包含魔法正则表达式字符的情况。