如何动态地将一个数组中的数据移动到单独的数组中

时间:2017-07-28 21:35:25

标签: javascript arrays json dynamic foreach

我正在使用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的全部总大小,但之后可能会更高。

如果条件匹配(即值包含“subject =”,那么从匹配点开始的索引处的所有内容都需要移动到必须是动态的新数组。

我知道如何从当前数组中删除但不确定如何将其动态移动到新数组中。

如果我没有说清楚,请询问并感谢你

1 个答案:

答案 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; }