我想创建一个返回对象的函数。有时这个函数的一个参数是一个空字符串。如果我只在函数参数不是空字符串时才使用if语句生成对象属性:city.length > 0 ? 'city': city :
它会抛出错误。知道如何正确定义对象内的if
语句吗?
function generateJson(city, state) {
return {
city.length > 0 ? 'city': city : ,
state.length > 0 ? 'state': state :
};
}
let city = 'NY';
let state = '';
generateJson(city, state); //output: { 'city': 'NY' }
答案 0 :(得分:1)
这将生成一个JSON。要转换为JS对象,只需使用JSON.parse
。
function generateJson(city, state) {
return JSON.stringify({
city: city.length > 0 ? city : undefined,
state: state.length > 0 ? state: undefined,
});
}
let city = 'NY';
let state = '';
console.log(generateJson(city, state)); //output: { 'city': 'NY' }
答案 1 :(得分:1)
一个成语是使用Object.assign
,利用它跳过非对象参数的事实:
function generateJson(city, state) {
return Object.assign({}, city && {city}, state && {state});
}