質問: new Array("あああ","いいい","あああ","ううう","えええ","ううう"); ``` 配列[a]がすべての要素がひとつずつ入った配列、配列[b]はその中の要素が増減した配列になり、 最終的に、以下の値を取得したいと思っています。 ``` ("あああ","いいい","あああ","ううう","えええ","ううう","おおお"); ``` 配列[a]と配列[b]を比較し、配列[a]にだけ存在する要素を配列[b]にpush、 配列[b]の中で重複している要素については、削除せずにそのままにしたいのです。 しかも、必ず配列[b]のほうが要素数が多いとも限りません。。。 ※("あああ")だけという場合もあります。 ごく簡単なscriptなのかもしれないのですが、思うような結果になかなか辿り着けません。 お力をお貸しください。どうぞよろしくお願いいたします。
回答: jQueryが使えるのであれば $.inArray がありますので以下のように書けます。 ``` var a = new Array("あああ", "いいい", "ううう", "えええ", "おおお"); var b = new Array("あああ", "いいい", "あああ", "ううう", "えええ", "ううう"); for (var i = 0; i < a.length; i++) { // 配列aの要素 a[i] と配列bを比較し、配列bに存在しなかったら a[i] を配列bにpush if ($.inArray(a[i], b) < 0) { b.push(a[i]); } } // → ["あああ","いいい","あああ","ううう","えええ","ううう","おおお"]; ```