js配列デ重量互換方法
1872 ワード
js互換配列の重量除去方法
js配列のspliceとindexOf法を利用して、互換性のある配列デ重量を実現します.
まず簡単にindexOf法を利用して配列の重さを解消し、新しい空配列を作って重さを除去した配列を保存します.循環エルゴード配列はindexOf法を用いて元の配列要素が結果配列で下付きであると判断し、もし−1であれば結果配列にこの要素が含まれていないことを表し、このとき要素pushを結果配列の最後の出力結果配列に送ります.
最終コード:
js配列のspliceとindexOf法を利用して、互換性のある配列デ重量を実現します.
まず簡単にindexOf法を利用して配列の重さを解消し、新しい空配列を作って重さを除去した配列を保存します.循環エルゴード配列はindexOf法を用いて元の配列要素が結果配列で下付きであると判断し、もし−1であれば結果配列にこの要素が含まれていないことを表し、このとき要素pushを結果配列の最後の出力結果配列に送ります.
var array = [12, 3, 4, 4, 2];
function arrayWeighting() {
var result = [];
for (var i = 0; i < array.length; i++) {
if (result.indexOf(array[i]) == -1) {
result.push(array[i]);
}
}
console.log(result);
}
arrayWeighting();
まず、indexOf方法はIE 9から使用されるということを知っておくべきです.IE 9以下のieバージョンというコードは、欠陥のある互換性のある方法であり、まずif文でブラウザがindexOfをサポートしているかどうかを判断します.
var array = [12, 3, 4, 4, 2];
function arrayWeighting() {
var result = [];
for (var i = 0; i < array.length; i++) {
if (!result.indexOf) {
//todo
} else {
if (result.indexOf(array[i]) == -1) {
result.push(array[i]);
}
}
}
console.log(result);
}
arrayWeighting();
indexOfメソッドがサポートされていない場合/todoで互換コードを実現します.考え方:配列の前後の要素が等しいかどうかを比較することによって、もしsplice方法を利用して、後に再び出現する要素を削除するならば、重複要素を削除した元の配列要素pushから結果配列splice削除方法までのパラメータは2つのsplice(index,num)で、それぞれ下付きと削除個数です.最終コード:
var array = [12, 3, 4, 4, 2];
function arrayWeighting() {
var result = [];
for (var i = 0; i < array.length; i++) {
if (!result.indexOf) {
for (var j = i + 1; j < array.length; j++) {
if (array[i] === array[j]) {
array.splice(j, 1);
}
}
result.push(array[i]);
} else {
if (result.indexOf(array[i]) == -1) {
result.push(array[i]);
}
}
}
console.log(result);
}
arrayWeighting();
内層サイクルのj=i+1は、要素と自身の比較を避けるために、重複しない要素を削除するバグが発生します.