我将json文件转换为xml文件,在我的json文件中我有:
"settingsData": {
"settingsname": "",
"username": "Dave",
"password": "",
"domain": "Benji",
}
我的输出是:
<data name="settingsname" value=""/>
<data name="username" value="Dave"/>
<data name="password" value=""/>
<data name="domain" value="Benji"/>
这是我的功能:
var settings = [];
function extractData(data, settingsData){
settings.push({
name: 'settingsname',
value: data.settingsname
});
settings.push({
name: 'username',
value: data.username
});
settings.push({
name: 'password',
value: data.password
});
settings.push({
name: 'domain',
value: data.domain
});
return settings;
}
输出必须是:
<data name="username" value="Dave"/>
<data name="domain" value="Benji"/>
我的问题是如何删除空字符串或如何检查它是否为空字符串然后不将其添加到数组中?
我使用了类似下面的if语句,但它不起作用:
if (settingsData.settingsname !== ""){
settings.push({
name: 'settingsname',
value: data.settingsname
});
}
提前致谢!
答案 0 :(得分:1)
只需遍历数组并检查属性是否存在:
var settingsData = {
settingsname: '',
username: 'Dave',
password: '',
domain: 'Benji'
};
function extractData(data, settingsData) {
var settings = [];
for (var key in settingsData ) {
if (data.hasOwnProperty(key) && settingsData[key].length > 0) {
settings.push({name: key, value: data[key]});
}
}
return settings;
}
答案 1 :(得分:0)
var settingsData = {
settingsname: '',
username: 'Dave',
password: '',
domain: 'Benji'
};
function extractData(){
var arr = [];
for (var key in settingsData ) {
if (settingsData.hasOwnProperty(key)) {
if (settingsData[key]) arr.push(settingsData[key]);
}
}
console.log(arr);
}
extractData(); // ["Dave", "Benji"]