var a = [1, 2, 3];
var b = [3, 2, 1];
var c = new Array(1, 2, 3);
alert(a == b + "|" + b == c);
Run Code Online (Sandbox Code Playgroud)
如何检查这些数组是否相等并获得一个方法,true如果它们相等则返回?
jQuery是否提供任何方法?
新的ES 6(Harmony)引入了新的Set对象.Set使用的身份算法类似于===运算符,因此不太适合比较对象:
var set = new Set();
set.add({a:1});
set.add({a:1});
console.log([...set.values()]); // Array [ Object, Object ]
Run Code Online (Sandbox Code Playgroud)
如何自定义Set对象的相等性以进行深层对象比较?有没有像Java这样的东西equals(Object)?
JavaScript中有两个数组,它们都采用以下格式:
[{'drink':['alcohol', 'soft', 'hot']}, {'fruit':['apple', 'pear']}];
Run Code Online (Sandbox Code Playgroud)
我需要检测两个数组是否相等.如果它们以不同的顺序包含相同的元素,则它们被认为是相等的.我该怎么做?
我需要检查一个数组是否包含两个值,只检查它们.
这是我现在丑陋的解决方案:
if (myArray.includes('foo') && myArray.includes('bar') && myArray.length === 2) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)
更新:
我可能还需要检查三个或更多值.任何优雅的解决方 顺便说一句,我在这个项目中使用Lodash.
我有两个jQuery数组initialList和newList.
我首先比较它们:
initialList == newList
Run Code Online (Sandbox Code Playgroud)
这回来了false.
然后我逐个元素地比较:
$.each(initialList, function(idx, element){ console.log(element == newList[idx] )});
Run Code Online (Sandbox Code Playgroud)
每个比较都是true.
因此,如果所有元素都相同,为什么在第一次比较中返回false?
一个数组可以包含多个值。我想检查所有值是否相同或不同。
例子
var a = [2, 4, 7, 2, 8]; // all values are not same
var b = [2, 2, 2, 2, 2]; // all values are same
Run Code Online (Sandbox Code Playgroud)
我如何在 jquery 中检查它
我需要在reducers中验证类似字典的对象,但由于我已经在使用Babel,所以我不想求助于像Typescript这样的工具.
以此对象为例:
posts : {
byId : {
"post1" : {
id : "post1",
author : "user1",
body : "......",
comments : ["comment1", "comment2"]
},
"post2" : {
id : "post2",
author : "user2",
body : "......",
comments : ["comment3", "comment4", "comment5"]
}
}
allIds : ["post1", "post2"]
}
Run Code Online (Sandbox Code Playgroud)
我如何使用PropTypes 表达我对byId对象的期望?可能吗?如果是这样,怎么样?