Jquery使用换行符填充文本区域,如果没有数据则填充文本区域

Sap*_*rma 6 html javascript jquery

我试图在一个显示JSON数据textbox.数据采用以下格式:

address{
"street":"1st main Road"
"building_name":"Florence"
"Floor":""
"city":"New York"
}
Run Code Online (Sandbox Code Playgroud)

我试过这个:

$('#id_address').val(address.street+'\n'+address.building_name+'\n'+address.Floor+'\n'+address.city);
Run Code Online (Sandbox Code Playgroud)

但问题是,如果楼层中没有数据,那么楼层和城市之间将存在换行符.如果地址线中没有数据,如何避免换行?

Ank*_*wal 6

您可以使用Object.keys(address)获取address属性的键并循环,并检查值是否为空.然后textarea根据条件准备相应的值address[key] !== ''.为了更完美,使用条件index+1 !== allKeys.length来防止\n最后一项.

var address = {
  "street":"1st main Road",
  "building_name":"Florence",
  "Floor":"",
  "city":"New York"
};

var textValue = '';
var allKeys = Object.keys(address);
allKeys.forEach(function(key, index){
  if(address[key] !== ''){
    textValue += address[key];
     if(index+1 !== allKeys.length){
       textValue += '\n';
     }
  }
});
console.log(textValue);
$('#id_address').val(textValue);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id='id_address' rows='5'></textarea>
Run Code Online (Sandbox Code Playgroud)