gpt4 book ai didi

javascript - 数组的复杂问题

转载 作者:行者123 更新时间:2023-12-03 07:10:29 25 4
gpt4 key购买 nike

我有一个复杂的问题需要解决。
我有一个如下所示的数组:

var array = [
["1hszZhsez7", 0, "mb12", 0],
["87hJKLi893", 1, "tt43", 0],
["jchd79dcic", 1, "tt43", 2],
["as0w9ejasm", 1, "tt43", 1],
["coosihchw9", 0, "zz00", 0],
["vs0x0j9ndm", 1, "uu33", 0],
["00s0kd20r7", 1, "uu33", 2],
["xassdwddao", 1, "uu33", 1],
["caosw8ncxc", 2, "uu33", 0]
];

这个数组总是有不同的值。让我们进去吧。
该数组基本上具有以下值:

var array = [
[id, type, code, priority]
];

id:id 是唯一的。没什么特别的。
类型:共有三种不同的类型。 0、1 和 2。
代码:代码不是唯一的。多个数组项可以相同。
priority:优先级是一个数字。如果数字低,则优先级高。如果数字很大,则优先级较低。


任务:
首先,我们需要将不同的类型排序到不同的数组中。所以它看起来像这样:

var type_zero = [
["coosihchw9", 0, "zz00", 0]
];

var type_one = [
["87hJKLi893", 1, "tt43", 0],
["jchd79dcic", 1, "tt43", 2],
["as0w9ejasm", 1, "tt43", 1],
["vs0x0j9ndm", 1, "uu33", 0],
["00s0kd20r7", 1, "uu33", 2],
["xassdwddao", 1, "uu33", 1]
];

var type_two = [
["caosw8ncxc", 2, "uu33", 0]
];

这个函数很简单:

 array.forEach(function(item) {
if (item[1] === 0) {
type_zero.push([item[0], item[1], item[2], item[3], item[4], item[5]]);
}
else if (item[1] === 1) {
type_one.push([item[0], item[1], item[2], item[3], item[4], item[5]]);
}
else if (item[1] === 2) {
type_two.push([item[0], item[1], item[2], item[3], item[4], item[5]]);
}
});

但接着就开始头疼了。我们需要为每个代码组创建一个单独的数组。但我们永远不知道有多少不同的代码。所以我们不能制作静态数组。
无论我们使用哪种代码。最后,它应该看起来像这样,基于我们的示例数组

var type_zero_zz00 = [
["coosihchw9", 0, "zz00", 0]
];

var type_one_tt43 = [
["87hJKLi893", 1, "tt43", 0],
["jchd79dcic", 1, "tt43", 2],
["as0w9ejasm", 1, "tt43", 1],
];

var type_one_uu33 = [
["vs0x0j9ndm", 1, "uu33", 0],
["00s0kd20r7", 1, "uu33", 2],
["xassdwddao", 1, "uu33", 1]
];

var type_two_uu33 = [
["caosw8ncxc", 2, "uu33", 0]
];

为什么我需要这些数组?在下一步中,我必须为每个数组列表执行一个 forEach 循环才能继续。我希望有人知道解决方案,因为这个问题困扰了很多天,而且不可能的想法越来越大。
提前致谢,
马吕斯

最佳答案

我看到您只需要创建函数来获取所需的信息,而不是创建大量不同的变量。

低于您需要完成的事情的想法,而不是您需要的 100% 准确版本

var array = [
["1hszZhsez7", 0, "mb12", 0],
["87hJKLi893", 1, "tt43", 0],
["jchd79dcic", 1, "tt43", 2],
["as0w9ejasm", 1, "tt43", 1],
["coosihchw9", 0, "zz00", 0],
["vs0x0j9ndm", 1, "uu33", 0],
["00s0kd20r7", 1, "uu33", 2],
["xassdwddao", 1, "uu33", 1],
["caosw8ncxc", 2, "uu33", 0]
];

function getByCode(code){
return array.filter( item => item[1] === code);
}

function getByGroup(group){
return array.filter( item => item[2] === group);
}

关于javascript - 数组的复杂问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64108966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com