我有2个点对象,如下所示,请注意
点1(p1、p2、p3和p4)是字符串类型,但它们是小数点。
点2(p1、p2、p3和p4)是数字。
对象中还有其他属性,但我不需要比较它们的相等性
如何比较点1(p1、p2、p3和p4)的相等性)==仅点2(p1、p2、p3和p4)
const point1 = {
id: 1234,
p1: "1.000000",
p2: undefined,
p3: "1.0",
p4: "1.0",
p5: "somevale 1"
};
const point2 = {
id: 3456,
p1: 1,
p2: undefined,
p3: 1,
p4: 1,
p5: "somevalue 2"
};
3条答案
按热度按时间ldioqlga1#
定义一个
keys
您要检查其相等性,然后使用.every()
在该数组上迭代每个键。对于每个键,可以检查其值是否来自point1
是使用isnan()表示的数字,如果是,则使用一元加号运算符将其转换为数字(+
),否则,您可以将其保留为原始值,并将其与存储在中的键处的值进行比较point2
. 召回.every()
需要返回true
对于数组中的所有键pointsEqual
成为true
,否则就会false
如果两个键之间不匹配:vmpqdwk32#
如果您使用的是javascript,则需要遍历项目并单独比较。此外,==用于类型检查。使用==跳过类型检查。
5jdjgkvh3#
你可以使用
for
从1循环到4循环,并通过串联获得相应的属性"p"
对于索引,如下所示:注意两者之间的区别
!=
及!==
. (一个比较类型,另一个不比较)