【问题标题】:How to move the data in one array to a separate array dynamically如何将一个数组中的数据动态移动到一个单独的数组中
【发布时间】:2018-01-05 01:40:48
【问题描述】:

我正在为此使用 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=”,那么从匹配点开始处的索引中的所有内容都需要移动到必须是动态的新数组中。

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

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

【问题讨论】:

  • 鉴于您提供的示例输入,您期望什么输出?
  • 我希望输出是一个包含 6 个值的数组,但它必须是动态数组。因此,如果我在第一个数组中有 14 个值,则会生成 2 个数组,因为第 6 个和第 13 个索引将以 subject= 开头
  • 这有意义吗我不确定它是否有?

标签: javascript arrays json dynamic foreach


【解决方案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; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多