2012-01-17 11 views
1

条件が満たされている場合にのみ値を追加しようとしています(distance!= "off")。特定の条件でオブジェクトに値を追加しますか?

これは私が試みたものですが、動作させることができません。

var params = { 
    q: pizza, 
    result_type: "mixed", 
    include_entities: "true", 
    if(distance != "off") { 
     geocode: geolocation, 
     } 
    rpp: 15, 
    page: 1 
}; 

どうすればできますか?

答えて

3

異なる意味で2つのオプションがあります。

オプション1:

var params = { 
    q: pizza, 
    result_type: "mixed", 
    include_entities: "true", 
    geocode: (distance != "off") ? geolocation:null, 
    rpp: 15, 
    page: 1 
}; 

またはオプション2:

var params = { 
    q: pizza, 
    result_type: "mixed", 
    include_entities: "true", 
    rpp: 15, 
    page: 1 
}; 

if(distance != "off") { 
    params.geocode: geolocation; 
} 

オプション1は、ジオコードが定義されている意味するであろうと、あなたがnullをチェックするか、デフォルト値があるべきものは何でもあなたが決める必要があるだろう。オプション2は、ジオコードが定義されていないことを意味します。これは、元のコード例で行うことをお勧めします。

+0

+1、ねえ...私より数秒遅れて。 – Alex

+0

IEFEのような他の方法があります: 'var params =(function(){var obj = {...}; if(。 ..)obj.goecode = ...; return obj;}()); ' – RobG

1
var params = { 
    q: pizza, 
    result_type: "mixed", 
    include_entities: "true", 
    rpp: 15, 
    page: 1 
}; 

if(distance != "off") { 
    params.geocode = geolocation; 
} 
+0

これはLiso22が探していたものです。 'geocode'をより短い方法で未定義にする方法はありません。なぜdownvote? – copy

関連する問題