Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.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/3/arrays/12.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_Arrays - Fatal编程技术网

Javascript 包含用于数组的数组的函数

Javascript 包含用于数组的数组的函数,javascript,arrays,Javascript,Arrays,我有一个数组 m = [[-100,100], [-100,-100], [-100,-100], [-100,100]] 我想删除重复的。我试过了 aa = [...new Set(m)]; // and let chkdup = (arr, tar) => tar.every(v => arr.includes(v))`. 但是我不能删除重复的 在Python中,我可以很容易地在m中检查这个[-100100]。但是我不知道JS中的函数包含不适用于这种情况。新设置的无

我有一个数组

m = [[-100,100], [-100,-100], [-100,-100], [-100,100]]
我想删除重复的。我试过了

 aa = [...new Set(m)];

// and 

let chkdup = (arr, tar) => tar.every(v => arr.includes(v))`. 
但是我不能删除重复的


在Python中,我可以很容易地在m中检查这个
[-100100]。但是我不知道JS中的函数<代码>包含不适用于这种情况。

新设置的
无法正常工作的原因是在JavaScript中,具有相同值的数组不相等。试试:
console.log([-100100]=[-100100])将返回false。如果您只是想在阵列之间进行比较,请参阅

解决方法是将子阵列转换为字符串,并使用
Set
进行重复数据消除:

const arr=[
[-100, 100],
[-100, -100],
[-100, -100],
[-100, 100]
];
const setArray=new Set(arr.map(x=>JSON.stringify(x));
const result=[…setArray].map(x=>JSON.parse(x));

控制台日志(结果)新集合之所以不能很好地工作,是因为在JavaScript中,具有相同值的数组不相等。试试:
console.log([-100100]=[-100100])将返回false。如果您只是想在阵列之间进行比较,请参阅

解决方法是将子阵列转换为字符串,并使用
Set
进行重复数据消除:

const arr=[
[-100, 100],
[-100, -100],
[-100, -100],
[-100, 100]
];
const setArray=new Set(arr.map(x=>JSON.stringify(x));
const result=[…setArray].map(x=>JSON.parse(x));

控制台日志(结果)发生这种情况是因为
[-100100]!=[-100100]
。您可以做的是将数组转换为字符串,并将字符串与
JSON.stringify
进行比较

let m = [[-100,100], [-100,-100], [-100,-100], [-100,100]]
m = m.map(item => JSON.stringify(item).trim()) // Stringify everything (remove leading white space)
m = [...new Set(m)] // Convert to array getting rid of duplicates
m = m.map(item => JSON.parse(item)) // Parse it

请注意,这不是很有效(解释器必须转换为字符串并再次解析对象),但它是最简单的解决方案。它所做的是检查由两个对象组成的
JSON
字符串是否相等,并且不会与您自己的类一起工作。

发生这种情况是因为
[-100100]!=[-100100]
。您可以做的是将数组转换为字符串,并将字符串与
JSON.stringify
进行比较

let m = [[-100,100], [-100,-100], [-100,-100], [-100,100]]
m = m.map(item => JSON.stringify(item).trim()) // Stringify everything (remove leading white space)
m = [...new Set(m)] // Convert to array getting rid of duplicates
m = m.map(item => JSON.parse(item)) // Parse it

请注意,这不是很有效(解释器必须转换为字符串并再次解析对象),但它是最简单的解决方案。它所做的是检查由两个对象组成的
JSON
字符串是否相等,并且不适用于您自己的类。

您只需使用javascriptSetmap执行此操作,然后解析值。更多信息

m=[-100100]、-100、-100、-100、-100、-100100];
result=Array.from(新集合(m.map(JSON.stringify)),JSON.parse);

控制台日志(t)您可以简单地使用javascriptSetmap执行此操作,然后解析值。更多信息

m=[-100100]、-100、-100、-100、-100、-100100];
result=Array.from(新集合(m.map(JSON.stringify)),JSON.parse);

控制台日志(t)
您可以使用
.map()
JSON.stringify()
对数组进行字符串化,并将其输入到集合中。由于您现在有一个字符串数组,集合将删除重复项,因为它可以正确检查相等性。然后可以使用
Array.from
JSON.parse的映射函数将其转换回数组:
const m=[[-100100]、-100、-100、-100、-100、-100100];
const res=Array.from(新集合(m.map(JSON.stringify)),JSON.parse);

控制台日志(res)
您可以使用
.map()
JSON.stringify()
对数组进行字符串化,并将其输入到集合中。由于您现在有一个字符串数组,集合将删除重复项,因为它可以正确检查相等性。然后可以使用
Array.from
JSON.parse的映射函数将其转换回数组:
const m=[[-100100]、-100、-100、-100、-100、-100100];
const res=Array.from(新集合(m.map(JSON.stringify)),JSON.parse);
控制台日志(res)