Arrayのfilterメソッドを使えば、条件を満たす行だけを抜き出すことが出来ます。
sortメソッドと似たような使い方ですが、
filterの引数には、boolを返す関数を指定する必要があります。
関数がtrueを返す配列の要素だけが残ります。
次の例は、指定した文字(初期値は=)以降の文字列が重複している行だけを表示するjavascriptです。
data:text/html, <!DOCTYPE html> <html contenteditable> <head> <title>Do</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <script language="JavaScript"> function doScript(val){ var array=val.split(/\r?\n/g); compStr=document.getElementById('compStr').value; var val=array.filter(compare).join("\r"); document.getElementById('result').value =val; } function compare(value,index,array){ if(value.indexOf(compStr)==-1)return false; var compArray = new Array(array.length); for (var i = 0; i < array.length; i++) { if(array[i].indexOf(compStr)==-1){compArray[i]=null;} else{compArray[i]=array[i].substr(array[i].indexOf(compStr));} } var compvalue=value.substr(value.indexOf(compStr)); for (var i = 0; i < compArray.length; i++) { if(compvalue==compArray[i]&& i!=index )return true; } return false; } </script> <form id="editor" action="/search" method="GET" onsubmit="doScript(this.val.value);return false;"> <textarea name="val" > value</textarea><input type="submit" value="DoScript"/> </form> <pre><textarea id="compStr">=</textarea></pre> <textarea id="result">result</textarea> </body> </html>