トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     配列の重複を削除
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
multi
Åê¹ÆNo.22402
投稿日時: 2005-12-22 22:18
新米
居住地:
投稿: 8
使用環境:
WinXP,Flash 8
配列の重複を削除
配列の重複する項目を削除する方法に悩んでいます。

元の配列から新しい配列を作るようにすればいいのではと漠然とイメージはできるのですが、具体的方法が思い浮かばず悩んでいます。


イメージとしては
var array1=['a','d','c','a','b','b','c','a','b','c'];
という配列があるとしたら、
array2=['a','b','c','d'];
という重複した物を削除した配列にしたいのです。


よろしくお願いします。
野中文雄
Åê¹ÆNo.22403
投稿日時: 2005-12-22 22:43
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 配列の重複を削除
エレメントがさまざまな値を取るなら、ひとつひとつ重複がないか調べたうえで、新たな配列に追加していくかたちになるでしょう。
引用:
multiさんは書きました:
元の配列から新しい配列を作るようにすればいいのではと漠然とイメージはできるのですが、具体的方法が思い浮かばず悩んでいます。

ただ、単純な文字列しか含まないのであれば、簡便な方法があります。
引用:
イメージとしては
var array1=['a','d','c','a','b','b','c','a','b','c'];
という配列があるとしたら、
array2=['a','b','c','d'];
という重複した物を削除した配列にしたいのです。

trace(xGetUniqueArray(array1).sort());  // 出力: a,b,c,d
function xGetUniqueArray(_array:Array):Array {
	var result_array:Array = new Array();
	var oValues:Object = new Object();
	var nLength:Number = _array.length;
	for (var i:Number = 0; i<nLength; ++i) {
		var myValue:Object = _array[i];
		if (!oValues[myValue]) {
			oValues[myValue] = true;
			result_array.push(myValue);
		}
	}
	return result_array;
}


----------------
 

anko
Åê¹ÆNo.22405
投稿日時: 2005-12-23 13:29
半人前
居住地:
投稿: 38
使用環境:
MAC_G4
FLASH5,FLASH MX2004
Re: 配列の重複を削除
そうそう、これ。以前自分も悩んだことありました。
データベースのand検索とor検索。

1?10個のtextの中で、Aという文字列が含まれているのが
[1,2,3,5,8,9]番

Bという文字列が含まれているのが
[1,2,3,6,7,9]番

二つをくっつけて[1,2,3,5,8,9,1,2,3,6,7,9]

sortして[1,1,2,2,3,3,5,6,7,8,9,9]

これを最初から、その番目とその番目+1を比較して

違っていれば、その番目の数を別配列に追加する
[1,2,3,5,6,7,8,9]
=or 検索

同じであれば、その番目の数を別配列に追加する
[1,2,3,9]
=and 検索
Fla4man
Åê¹ÆNo.22406
投稿日時: 2005-12-23 16:51
職人
居住地: かまくら
投稿: 517
使用環境:
WinMe,Win2000,
Flash4,アズさん,大仏、delphi
Re: 配列の重複を削除
この方法は一見スマートなんですが
最初にソートかける行為自体コストがかかっているので
先頭文字から順番に比較文字として取り出し
最後までサーチしながら削除するのに比べて
メリットがないのでは?


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

multi
Åê¹ÆNo.22408
投稿日時: 2005-12-23 19:15
新米
居住地:
投稿: 8
使用環境:
WinXP,Flash 8
Re: 配列の重複を削除
単純そうでいて複雑なのですね。

野中さんのサンプルをヒントに、
お陰さまで、なんとか対処することができました。

どうもありがとうございました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops