2017-07-28 6 views
1

私はこのためにJavaScriptを使用しています。 1つの配列のデータを別の配列に動的に移動する方法

この

は私がより良いビューのスナップショットが

含む値がある、それを分割し、この配列をループは、私は何をしたいですhereを見つけることができます

0 "mariam" 
1 "jibrin" 
2 "maths" 
3 "Primary_1" 
4 "period_3" 
5 "Monday" 
6 "subject=maths?name=mariam&jibrin " 
7 "zainab" 
8 "usman" 
9 "maths" 
10 "Nursery_2" 
11 "period_3" 
12 "Wednesday" 
13 "subject=maths?name=zainab&usman " 

私の配列で、現在持っているものです"subject ="そしてすべての値をその点まで新しい配列に移動します。

インデックス6の値が条件に一致するため、インデックス0から6のすべてがここから新しい配列に移動します。 これは残りの部分に適用されます。

だから、これはこれまでのところ、私が持っているコードです:

var your_object = JSON.parse(response); // here I will have a JSON 
var splitter = String(your_object).split(","); 

var returnArray = []; 
    var tmp = []; 
    $(splitter).each(function (i,v) { 
     console.log(i,v); 
     if (v.includes("subject=")) { 
      //console.log("FOUND", i); 
     } 
    }); 

私は新しい配列にそれを移動して行くと、動的にこれを処理する方法がわからないです。 Jsonは分で14の完全なサイズを通過しましたが、それは後でより高くなる可能性があります。

条件が一致した(つまり、値が「件名=」それは動的にする必要があり、新しいアレイに移動するニーズにマッチした時点で開始時にインデックスから、その後のすべてが含まれている場合。

私はどのように知っています現在の配列から削除ではなく、動的に新しいものにそれを移動する方法を確認してください。

を私は自分自身を明確にお尋ねください行われなかった場合は、あなたに感謝

+0

、あなたはどのような出力を期待していますか? – Will

+0

私は出力が6つの値を持つ配列であると予想しますが、動的配列でなければなりません。だからもし私が最初の配列に14の値を持っていれば、2番目の配列が生成されます。なぜなら、6番目と13番目のインデックスはsubject = –

+0

で始まるからです。 –

答えて

1

項目が対象ストリングや変更が含まれている場合は、チェックできます結果の配列

あなたが提供した例の入力を考える

var data = ["mariam", "jibrin", "maths", "Primary_1", "period_3", "Monday", "subject=maths?name=mariam&jibrin ", "zainab", "usman", "maths", "Nursery_2", "period_3", "Wednesday", "subject=maths?name=zainab&usman "], 
 
    result = data.reduce(function (r, a, i, aa) { 
 
     r[r.length - 1].push(a); 
 
     if (a.slice(0, 8) === 'subject=' && i + 1 < aa.length) { 
 
      r.push([]); 
 
     } 
 
     return r; 
 
    }, [[]]); 
 
    
 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

これはまさに私が欲しかったことです、ありがとう –

関連する問題