gpt4 book ai didi

javascript - 数组包含其他数组中的所有元素

转载 作者:行者123 更新时间:2023-12-03 11:27:20 25 4
gpt4 key购买 nike

我已经尝试弄清楚如何做到这一点有一段时间了,但尚未取得任何成功。如果我有 2 个这样的数组:

array1 = [
{ name: 'John', age : 25},
{ name: 'Jane', age : 58}
]
array2 = [
{ name: 'Jane', age : 58},
{ name: 'John', age : 25}
]

如何检查array1是否包含array2的所有元素?注意 - 顺序并不重要,我希望能够编写如下内容:

if array1.containsAll array2
console.log 'array1 contains all of the elements in array2'
else
console.log 'array1 does not contain all of the elements in array2'

我尝试使用 contains 函数,但收到如下错误:

Object .... has no method 'contains'

最佳答案

我怀疑这个方法是否具有良好的性能,但它应该非常强大,并且非常容易理解......

# sort function to marshall data into consistent format
sortfunc = (a,b)-> JSON.stringify(a) < JSON.stringify(b)

# if serialized, sorted arrays are equal, then all items are present
if JSON.stringify(array1.sort(sortfunc)) == JSON.stringify(array2.sort(sortfunc))
console.log "same"
else
console.log "different"

n.b.需要注意的是,对象键的顺序可能重要也可能不重要,具体取决于 JS 引擎是否尊重对象索引顺序(JS 规范规定这不是必需的)

关于javascript - 数组包含其他数组中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867356/

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