['string1', 'string2'].join(',') // "string1,string2"
次の結果を得るにはどうすればよいですか?
"string1", "string2"
アンダースコアとjqueryを使用しています。
私の目標はそのようなものを作ることです:
_.without(['string1', 'string2', 'string3'], "string1", "string2");
=> ['string3']
['string1', 'string2'].join(',') // "string1,string2"
次の結果を得るにはどうすればよいですか?
"string1", "string2"
アンダースコアとjqueryを使用しています。
私の目標はそのようなものを作ることです:
_.without(['string1', 'string2', 'string3'], "string1", "string2");
=> ['string3']
要素の「無料」リストを作成することはできません。それはJavascriptが機能する方法ではありません。あなたはいつも配列やコレクションなどを扱っています。
Underscore.jsはよくわかりませんが、これを試してみてください。
var a = ['string1', 'string2', 'string3'],
b = ['string1', 'string2'];
_.without.apply(_, [a].concat(b));
の目的はapply
、動的な数の動的引数を使用して関数を呼び出すことです。
あなたの場合、要素の「無料」リストは必要ありません。の代わりに
使用する必要があります。 _.difference
_.without
_.difference(['string1', 'string2', 'string3'], ["string1", "string2"]);
あなたはそれをこのように得ることができます:
var something = '"' + ['string1', 'string2'].join('", "') + '"';
結果は次のようになります。"string1", "string2"
代わりにあなたは使うことができますJSON.stringify(['string1', 'string2'])
結果は次のようになります。["string1","string2"]
別の方法は、文字列の配列を別の文字列から削除する単純な関数を作成することです。
var arr = ["str1","str2","str3"];
function removeStrings(a,strs) {
strs.forEach(function(e) {
a.splice(a.indexOf(e),1);
});
}
removeStrings(arr,["str2","str1"]);
console.log(arr);//["str3"]
違いはより適切に見える http://underscorejs.org/#difference
var rem, orig, val;
rem = ['string1', 'string2'];
orig = ['string1', 'string2', 'string3'];
val = _.difference(orig, rem); // ['string3'];
http://jsbin.com/eyegoh/1/edit
または、 http ://api.jquery.com/jQuery.grep/およびhttp://api.jquery.com/jQuery.inArray/を使用してjQueryを使用すると少し長くなります
var rem, orig, val;
rem = ['string1', 'string2'];
orig = ['string1', 'string2', 'string3'];
val = $.grep(orig, function(el, ix) {
return $.inArray(el, rem) == -1;
});