假设我有一个包含以下内容的数组:@@@
我想删除###
和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);
};
我认为有一些非常简单的原因,我无法让它工作,所以任何帮助将不胜感激。谢谢!
答案 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
来处理包含魔法正则表达式字符的情况。