2つの配列をオブジェクトの配列に結合しようとしています。2つの配列をオブジェクトの配列に結合し、重複を数えて返します。
例:私は、これら2つを組み合わせていたいのです
arr1 = [a,b,c];
arr2 = [a,a,a,b,b,c,d,d];
方法:ARR1に保存された値のみが統合されるべきであることを
combinedArr = [
{name: a, amount: 3},
{name: b, amount: 2},
{name: c, amount: 1}
];
注意、中に存在しない任意のARR2値arr1はちょうど残されています。
また、私はAfter EffectsのExtendscriptでこれを使用してECMA-262標準の第3版に制限し、古い古典的なjavascriptを残すことが重要です。連結、スライス、結合などの機能は利用できません。
私は方法を試しましたが、私はそれを理解することはできません。私は、アレイを介してわずか2〜3個のスマートループで解決策を達成できると確信しています。事前に
おかげで、 サイモン
EDIT: 私は私の問題で自分の試みを追加しないことで混乱を作成しました。申し訳ありませんが、私はそれを一晩考えていて、列車の電話でこの質問を書いています。
私は私の質問について悪意を持っていなかったことを証明するために、私が以前に書いたことを簡単にはしませんが、実際のコードから投稿します。 :
var createMarkerList = function() {
var subList = _createMarkerListSub(); //in this example arr1
var masterList = _createMarkerListMaster(); //in this example arr2
var output = [];
for(var i=0;i<subList.length;i++){
var uniqueMarker = subList[i];
output.push({
name: uniqueMarker,
amount: 0,
});
}
for(var i=0;i<masterList.length;i++){
var genericMarker = masterList[i];
if(output[i].name == genericMarker){
output[i].amount = output[i].amount +1;
}
}
}
私は単にいくつかの理由のためにそれのまわりで私の頭を取得できませんでした、私はちょうどそれを理解しようとせずに答えをお願いすることによって周りの簡単な方法を取得しようとdid'tますのでご注意ください。
あなたは何をしようとしたことがありますか? – Rajesh
私はRajeshに同意します。これは基本的なものなので、最初にjavascriptチュートリアルを読むことをお勧めします。 – Verthosa
@Simon、あなたの努力を分かち合うことは非常に重要です。 *コード/アルゴリズム/検索されたリンク*にすることができます。あなたがそれを共有しない限り、あなたは問題の声明ではなく要件のように見えます。これにより、望ましくない票/コメントが集まる可能性があります。 – Rajesh