如何使用Javascript区分相同的对象数据值?ES-10/ES-10
对于给定的数据值
[{Zone: "2"},
{Zone: "4"},
{Zone: "4"},
{Zone: "6"},
{Zone: "1"},
{Zone: "2"},
{Zone: "3"},
{Zone: "3"},
{Zone: "4"},
{Zone: "4"}]在它分开之后,它会回来
[{Zone: "1"},
{Zone: "2"},
{Zone: "2"},
{Zone: "3"},
{Zone: "4"},
{Zone: "6"}]发布于 2018-03-12 05:47:40
一种可能的办法是:
var arr = [{Zone: "2"}, {Zone: "4"}, {Zone: "4"}, {Zone: "6"}, {Zone: "1"}, {Zone: "2"}, {Zone: "3"}, {Zone: "3"}, {Zone: "4"}, {Zone: "4"}]
var resp = [...new Set(arr.map(({ Zone }) => Zone))].sort().map(x => ({Zone: x}));
console.log(resp);.as-console-wrapper { max-height: 100% !important; top: 0; }
对于这种新方法,您可以在原始数组中使用map by Zones使用resp,如下所示:
var arr = [{Zone: "2" , Assign: "1"}, {Zone: "4", Assign: "2"}, {Zone: "4", Assign: "3"}, {Zone: "6", Assign: "4"}, {Zone: "1", Assign: "5"}, {Zone: "2", Assign: "6"}, {Zone: "3", Assign: "7"}, {Zone: "3", Assign: "8"}, {Zone: "4", Assign: "9"}, {Zone: "4", Assign: "10"}]
var resp = [...new Set(arr.map(({ Zone }) => Zone))].sort().map(x => ({Zone: x}));
var newresp = resp.map(({ Zone }) => {
var assigns = arr.filter(x => x.Zone == Zone).map(x => x.Assign);
return {
Zone: Zone,
Assign: assigns
}
})
console.log(newresp).as-console-wrapper { max-height: 100% !important; top: 0; }
发布于 2018-03-12 05:48:30
var lookup = {};
var items = [{Zone: "2"},
{Zone: "4"},
{Zone: "4"},
{Zone: "6"},
{Zone: "1"},
{Zone: "2"},
{Zone: "3"},
{Zone: "3"},
{Zone: "4"},
{Zone: "4"}];
var result = [];
for (var item, i = 0; item = items[i++];) {
var zone = item.Zone;
if (!(zone in lookup)) {
lookup[zone] = 1;
result.push(zone);
}
}https://stackoverflow.com/questions/49228780
复制相似问题