【发布时间】:2017-06-18 21:50:03
【问题描述】:
我正在写一个测试函数 postman,检查 json 对象是否具有相同的键并且每个键具有相同的数据类型
我有 3 个 json 对象
var test1 = {
"abc" : 1,
"qwe" : "random",
"arrayExample" : [{"var1" : 11, "var2" : 22}, {"var1" : 21314, "var2" : 99}]
}
var test2 = {
"abc" : 3,
"qwe" : "Another String",
"arrayExample" : [{"var1": 435, "var2": 897}]
}
var test3 = {
"abc" : 46,
"qwe" : "Nothing special",
"arrayExample" : [{"var1": 098, "var9" : "string here"}]
}
我想测试一下键,每个键的值也是相同的类型。
例如,如果我的比较函数称为 compare,如果对象属于同一类型,则返回 true,
function compare(obj1, obj2){
<NEED HELP HERE>
}
那我需要
compare(test1, test2) == true
和
compare(test1, test3) == compare(test2, test3) == false
因为
typeOf( test1["arrayExample"] ) = typeOf( test2["arrayExample"] ) = array of same JSON type
但是
typeOf( test3["arrayExample"]) = array of different json type
【问题讨论】:
-
在 JavaScript 中,没有 char 数组或 number 数组这样的东西。因此,您需要首先定义两个数组是否为“相同类型”的含义。你会考虑哪种类型的
["a", 2]?和[1, "b"]是同一类型吗? -
只需创建函数(声明要检查的规则)并循环遍历您的 json 对象:)
-
@smarx 我的数组将包含 JSON,我假设所有数组都将具有相同的 json 类型。我会稍微编辑一下问题
-
@AgentWeirdo 如果我理解正确,您只需检查数组的第一个元素,然后检查是否匹配。看来您已经准备好开始编写代码了! :-) 如果/当您有需要帮助的具体问题时,请告诉我们。
标签: javascript json postman