私はjavascriptに2つの配列を持っています -:
var array1 = ['12','1','10','19','100'];
var array2 = ['12','10','19'];
2 つの配列から一意のものを取得し、それらを array3 に配置するメソッド
Array3
が必要です -:
var array3 = ['1','100'];
手伝ってくれてありがとう。
私はjavascriptに2つの配列を持っています -:
var array1 = ['12','1','10','19','100'];
var array2 = ['12','10','19'];
2 つの配列から一意のものを取得し、それらを array3 に配置するメソッド
Array3
が必要です -:
var array3 = ['1','100'];
手伝ってくれてありがとう。
var unique = [];
for(var i = 0; i < array1.length; i++){
var found = false;
for(var j = 0; j < array2.length; j++){ // j < is missed;
if(array1[i] == array2[j]){
found = true;
break;
}
}
if(found == false){
unique.push(array1[i]);
}
}
更新 元の投稿は機能しますが、それほど高速ではありません。この実装ははるかに高速です。この例では配列を 1 つだけ使用しますが、関数では追加の配列を簡単に渡して結合できます。
簡単なエラーチェックのみが行われ、さらに多くのエラーチェックが行われる必要があります。独自の裁量で使用してください。実際の例としてのみ使用してください。
function Unique(array) {
var tmp = [];
var result = [];
if (array !== undefined /* any additional error checking */ ) {
for (var i = 0; i < array.length; i++) {
var val = array[i];
if (tmp[val] === undefined) {
tmp[val] = true;
result.push(val);
}
}
}
return result;
}
var unique = Unique([1, 2, 2, 6, 8, 5, 6, 8]);
さらに、これは Array オブジェクトのプロトタイプとして実装でき、署名を次のように変更できます。
Array.prototype.Unique = function() {
var array = this;
...
}
次のように呼び出すことができます。
var unique = [1, 2, 2, 6, 8, 5, 6, 8].Unique();
上記と同様ですが、3 つ以上の配列で動作します
var array1 = ['12','1','10','19','100'];
var array2 = ['12','10','19'];
var i = 0;
var hist = {};
var array3 = [];
buildhist(array1);
buildhist(array2);
for (i in hist) {
if (hist[i] === 1) {
array3.push(i);
}
}
console.log(array3);
function buildhist(arr) {
var i;
for (i = arr.length - 1; i >= 0; i--) {
if (hist[arr[i]] === undefined) {
hist[arr[i]] = 0;
}
hist[arr[i]]++;
}
}