ここのstackoverflowで、この役立つコードスニペットを見つけました:
Array.prototype.clean = function(deleteValue) {
for (var i = 0; i < this.length; i++) {
if (this[i] == deleteValue) {
this.splice(i, 1);
i--;
}
}
return this;
};
現在Firefoxに移植しているChrome拡張機能の配列から空の値を削除するために使用します。私は次のように ist を使用します:
foobar = foo.concat(bar).clean('').toString();
クロムでは問題なく動作しますが、Firefox では TypeError が発生します。
TypeError: foo.concat(...).clean is not a function
問題の可能性がある提案はありますか?
//編集//
foo と bar は配列です。foo は、次のように解析される json から取得されます。
var json = {property: 'a,b,c,d,e,f,g'};
json = json.property.split(',');
そして、次のように解析されるテキストエリアからのバー:
function digestTextField (string) {
// takes string of format "a, b , c", trims spaces, converts to lower case
var rawText = document.getElementById(string + 'Events').value,
digestedText = rawText.split(','),
i;
for (i = 0; i < digestedText.length; i += 1) {
digestedText[i] = digestedText[i].toLowerCase()
.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
return digestedText;
}
.clean('') が呼び出される前に、両方が simpleStorage に保存され、そこから読み取られます。