2017-07-28 45 views
1

我正在使用JavaScript進行此操作。如何將一個數組中的數據動態地移動到單獨的數組中

這是我目前在我的數組

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 " 

快照更好的視野,可以發現here

我想要做的是循環遍歷這個數組拆分它那裏是含有值「subject =」並將所有的值都移動到新的數組中。

因此,從索引0到6的所有內容都將從此處移動到新的數組,因爲索引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個數組產生,因爲6the和13th索引將以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

這正是我想要的,非常感謝你 –

相關問題