gpt4 book ai didi

javascript - 处理多个 JavaScript 检查的最佳方法

转载 作者:行者123 更新时间:2023-12-02 15:25:11 24 4
gpt4 key购买 nike

只是想问一下对 api 返回的对象运行多个 javascript 检查的最佳实践是什么。

例如,如果 api 返回此 json。

 var ob = {
"destination_addresses" : [ "15 Duke St, Cardiff, Cardiff CF10, UK" ],
"origin_addresses" : [ "2 College St, Swansea, Swansea SA1 5AE, UK" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "67.9 km",
"value" : 67941
},
"duration" : {
"text" : "57 mins",
"value" : 3446
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}

所以说我想检查持续时间是否仅存在,但我不想执行以下操作。

if(ob.rows){
if(ob.rows[0].elements){
if(ob.rows[0].elements[0].duration.text != undefined ){
console.log(ob.rows[0].elements[0].duration.text);
}
}
}

是否有更好的方法来检查持续时间和文本是否存在?

https://jsbin.com/turarurula/edit?js,console

最佳答案

我在我的所有项目中都使用这个函数

function verifyObject( objString, objObject ) {
var objElements = objString.split( "." );
var tempObj = objObject;
for( var i = 0; i < objElements.length; i++ ) {
var objKey = objElements[ i ];
if( !tempObj[objKey] ) {
return false;
}
tempObj = tempObj[objKey];
}
return true;
}

你只需要这样调用它

verifyObject( "rows.0.duration" , ob );

它将返回 FALSE,因为“ob.rows[0].duration”不存在

verifyObject( "rows.0.elements.0.duration" , ob )

将返回 TRUE,因为“ob.rows[0].elements[0].duration”存在。如果想获取ob.rows[0].elements[0].distance.text的值

if( verifyObject( "ob.rows.0.elements.0.distance.text", ob ) ) {
var valueVar = ob.rows[0].elements[0].distance.text;
} else {
// VALUE DOESN'T EXIST
}

关于javascript - 处理多个 JavaScript 检查的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33756007/

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