Javascript中的不同对象值
如何使用Javascript区分相同的对象数据值?[ES15/ES16] 对于给定的数据值Javascript中的不同对象值,javascript,Javascript,如何使用Javascript区分相同的对象数据值?[ES15/ES16] 对于给定的数据值 [{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: "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"}]
一种可能的办法:
var arr=[{Zone:“2”},{Zone:“4”},{Zone:“4”},{Zone:“6”},{Zone:“1”},{Zone:“2”},{Zone:“3”},{Zone:“4”},{Zone:“4”}]
var resp=[…新集合(arr.map(({Zone})=>Zone))].sort().map(x=>({Zone:x}));
控制台日志(resp)代码>
.as console wrapper{max height:100%!important;top:0;}
预期结果不是唯一的为什么有2个{Zone:'2'}
?顺序对您重要吗?只要是不同的,就不需要。@guijob这是打字错误:)谢谢@guijob这很好:)最后一件事,先生,如果我得到一些额外的对象值怎么办。像{Zone:“2”,Assign:1}我如何也能返回“Assign:1”值?这取决于,对于每个区域:2
,将Assign:1
?不,它应该传递给每个与其相等的区域。如果对象具有相同的区域但分配不同,它将返回到[{zone:2,assignnumber:[assign:1,assign:2]}]
。。。这就像重新创建新对象并将值传递给它。很抱歉,这已经超出了我的问题范围,但它确实可以帮助我理解对象的工作原理并对其进行操作。。非常感谢,先生:)
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);
}
}