Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按类型使用最低层的节点数据_Javascript_Mysql_Algorithm - Fatal编程技术网

Javascript 按类型使用最低层的节点数据

Javascript 按类型使用最低层的节点数据,javascript,mysql,algorithm,Javascript,Mysql,Algorithm,我将在javascript数组中演示我的数据。我正在寻找JS或Mysql中的解决方案。数据库表是平面的,就像这个数组一样 [{ "id": 1, "account_id": 1, "size_id": null, "color_id": null, "style": "new-age", "amount": "30.00" }, { "id": 2, "account_id": 1, "size_id": 1, "c

我将在javascript数组中演示我的数据。我正在寻找JS或Mysql中的解决方案。数据库表是平面的,就像这个数组一样

[{
    "id": 1,
    "account_id": 1,
    "size_id": null,
    "color_id": null,
    "style": "new-age",
    "amount": "30.00"
},
{
    "id": 2,
    "account_id": 1,
    "size_id": 1,
    "color_id": null,
    "style": "new-age",
    "amount": "5.00"
},
{
    "id": 3,
    "account_id": 1,
    "size_id": 1,
    "color_id": 1,
    "style": "new-age",
    "amount": "6.00"
},
{
    "id": 3,
    "account_id": 1,
    "size_id": 1,
    "color_id": null,
    "style": "old-school",
    "amount": "25.00"
},
{
    "id": 3,
    "account_id": 1,
    "size_id": null,
    "color_id": null,
    "style": "old-school",
    "amount": "2.00"
}]
我特别关注以下专栏:

帐号 大小 颜色 我希望结果按样式分组,例如,如果用户指定大小和颜色,我希望结果如下所示:

[{
    "id": 3,
    "account_id": 1,
    "size_id": 1,
    "color_id": 1,
    "style": "new-age",
    "amount": "6.00"
},
{
    "id": 3,
    "account_id": 1,
    "size_id": 1,
    "color_id": null,
    "style": "old-school",
    "amount": "25.00"
}]
[{
    "id": 1,
    "account_id": 1,
    "size_id": null,
    "color_id": null,
    "style": "new-age",
    "amount": "30.00"
},
{
    "id": 3,
    "account_id": 1,
    "size_id": null,
    "color_id": null,
    "style": "old-school",
    "amount": "2.00"
}];
另一种情况是,它们不指定大小或颜色id,结果如下所示:

[{
    "id": 3,
    "account_id": 1,
    "size_id": 1,
    "color_id": 1,
    "style": "new-age",
    "amount": "6.00"
},
{
    "id": 3,
    "account_id": 1,
    "size_id": 1,
    "color_id": null,
    "style": "old-school",
    "amount": "25.00"
}]
[{
    "id": 1,
    "account_id": 1,
    "size_id": null,
    "color_id": null,
    "style": "new-age",
    "amount": "30.00"
},
{
    "id": 3,
    "account_id": 1,
    "size_id": null,
    "color_id": null,
    "style": "old-school",
    "amount": "2.00"
}];
假设帐户id始终有一个记录

如果指定了颜色标识,则首先使用该记录。 如果指定了size_id,则仅在帐户id上方使用该记录。 如果未指定颜色id或大小id,则默认为帐户id进行定价。
此方案的特点是一个小功能selectfrom,其中sort有三个参数

from:作为数组的数据源,必需

其中:具有一个或多个键/值对的对象,如果提供了多个键/值对,则条件为带和链接。如果不正确,则该参数无效

排序:一个包含键/值对对象的数组,该数组对结果集进行排序,键升序为值1,降序为值-1。排序以字符串排序为特征。如果不正确,则该参数无效

测试用例返回:

颜色_id=1的所有集合,按样式升序排序。 大小为1的所有集合,按样式升序排序。 颜色为null且大小为null的所有集合,按样式升序排序。 按样式升序和金额升序排序的所有集合。 风险值数据=[ {id:1,帐户id:1,大小id:null,颜色id:null,样式:新时代,金额:30.00}, {id:2,帐户id:1,大小id:1,颜色id:null,样式:新时代,金额:5.00}, {id:3,帐户id:1,大小id:1,颜色id:1,样式:新时代,金额:6.00}, {id:3,帐户id:1,大小id:1,颜色id:null,样式:老式,金额:25.00}, {id:3,帐户id:1,大小id:null,颜色id:null,样式:老式,金额:2.00} ]; 函数selectfrom、where、sort{ var数据=from.0; where&&Object.keyswhere.foreachk函数{ data=data.filterfunction d{ 返回d[k]==其中[k]; }; }; sort&&data.sort函数a、b{ var值=0; sort.Somel函数{ var key=Object.keysel[0]; value=~el[key]?a[key].localeCompareb[key]:b[key].localeComparea[key]; 返回值; }; 返回值; }; 返回数据; } 函数printo{ document.body.innerHTML+=; } printselectdata,{color_id:1},[{style:1}]; printselectdata,{size_id:1},[{style:1}]; printselectdata,{color\u id:null,size\u id:null},[{style:1}];
printselectdata,未定义,[{style:1},{amount:1}];请解释一下用户指定大小和颜色的结果,因为颜色不是空就是1?