Javascript 将null值替换为JSON输出数组中的字符串-V2.0
我试图将提交表单后通过JSON获得的空值替换为字符串值,如“n/a”或“notspecified”。我添加了@Winter Solider建议的几行代码,下面对其进行了注释,以检查空值并替换它,但我添加的代码不起作用。想法呢?Javascript 将null值替换为JSON输出数组中的字符串-V2.0,javascript,arrays,json,null,Javascript,Arrays,Json,Null,我试图将提交表单后通过JSON获得的空值替换为字符串值,如“n/a”或“notspecified”。我添加了@Winter Solider建议的几行代码,下面对其进行了注释,以检查空值并替换它,但我添加的代码不起作用。想法呢? -谢谢 function submitFormFunction() { //document.getElementById("form").submit(); var valueArray = [ { 'la
-谢谢
function submitFormFunction() {
//document.getElementById("form").submit();
var valueArray = [
{
'label': 'contractId',
'value': document.getElementById('ContractId').value
},
{
'label': 'title',
'value': document.getElementById('ContractTitle').value
},
{
'label': 'minYear',
'value': document.getElementById('MinYear').value
},
{
'label': 'maxYear',
'value': document.getElementById('MaxYear').value
},
{
'label': 'terminal',
'value': document.getElementById('Terminal').value
},
{
'label': 'location',
'value': document.getElementById('Location').value
},
{
'label': 'theme',
'value': document.getElementById('Theme').value
},
{
'label': 'construction',
'value': document.getElementById('Construction').value
},
{
'label': 'asBuilt',
'value': document.getElementById('AsBuilt').value
}
].map(function (param) { return param.label + '=' + param.value; });
if (valueArray.length) {
// here I am trying to handle the null value issue as suggested by Winter Soldier
for (var i = 0; i < valueArray.length; i++) {
if (valueArray[i].includes("null")) {
valueArray[i] = valueArray[i].replace("null", "n/a");
}
}
console.log(valueArray)
console.log(valueArray.join('&'));
//var queryStr = JSON.stringify(valueArray.replacer);
var queryString = valueArray.join('&');
fetch(searchUrl, '?' + queryString, function (data) {
// output search results to the dom
renderSearchResults(JSON.parse(data), document.getElementById('searchResults'));
});
} else {
document.getElementById('searchResults').innerHTML = "Please enter a search term.";
}
}
函数submitFormFunction(){
//document.getElementById(“表单”).submit();
var valueArray=[
{
“标签”:“收缩的”,
“值”:document.getElementById('construcd')。值
},
{
“标签”:“标题”,
“值”:document.getElementById('ContractTitle')。值
},
{
“标签”:“明年”,
“值”:document.getElementById('MinYear')。值
},
{
“标签”:“maxYear”,
“值”:document.getElementById('MaxYear').value
},
{
“标签”:“终端”,
“值”:document.getElementById('Terminal')。值
},
{
“标签”:“位置”,
“值”:document.getElementById('Location')。值
},
{
“标签”:“主题”,
“值”:document.getElementById(“主题”).value
},
{
“标签”:“构造”,
“值”:document.getElementById(“构造”).value
},
{
“标签”:“竣工”,
“值”:document.getElementById('asbuild').value
}
].map(函数(param){return param.label+'='+param.value;});
if(valueArray.length){
//在这里,我试图按照Winter Soldier的建议处理空值问题
对于(变量i=0;i
它对我来说工作正常。也许您还需要检查空字符串
var valueArray=[5,6,7,8,null,3,4,5,0,0,0,9',“”]
对于(变量i=0;i }
它对我来说工作正常。也许您还需要检查空字符串
var valueArray=[5,6,7,8,null,3,4,5,0,0,0,9',“”]
对于(变量i=0;i }
观察:您不必要地使用了过滤器
,因为它在值数组
数组上创建了另一个数组。相反,您可以使用forEach
。及
解决方案:
if (valueArray.length) { // It'll do the same job as 'valueArraylength > 0'
// here I am trying to handle the null value issue
valueArray.forEach(function(value){
if (value == null || value == "") {
value = "n/a";
}
})
//var queryStr = JSON.stringify(valueArray.replacer);
var queryString = valueArray.join('&');
fetch(searchUrl, '?' + queryString, function (data) {
// output search results to the dom
renderSearchResults(JSON.parse(data), document.getElementById('searchResults'));
});
}
希望这有帮助:)观察:您不必要地使用了
过滤器,因为它在valueArray
数组上创建了另一个数组。相反,您可以使用forEach
。及
解决方案:
if (valueArray.length) { // It'll do the same job as 'valueArraylength > 0'
// here I am trying to handle the null value issue
valueArray.forEach(function(value){
if (value == null || value == "") {
value = "n/a";
}
})
//var queryStr = JSON.stringify(valueArray.replacer);
var queryString = valueArray.join('&');
fetch(searchUrl, '?' + queryString, function (data) {
// output search results to the dom
renderSearchResults(JSON.parse(data), document.getElementById('searchResults'));
});
}
希望这有帮助:)
- 即使在执行
地图。每当您查找的元素中有空值时,
它最终被过滤掉了
- 因此,最好不要使用过滤器。根据修改您的代码
其他答案。切换到每一个或一些东西
- 虽然我有9个输入,但它只打印8个
请参阅下面的代码
var valueArray=[
{
“标签”:“收缩的”,
“值”:“收缩”
},
{
“标签”:“标题”,
“值”:“ContractTitle”
},
{
“标签”:“明年”,
“值”:“MinYear”
},
{
“标签”:“maxYear”,
“值”:“MaxYear”
},
{
“标签”:“终端”,
“值”:“终端”
},
{
“标签”:“位置”,
“值”:“位置”
},
{
“标签”:“主题”,
“值”:“主题”
},
{
“标签”:“构造”,
“值”:“构造”
},
{
“标签”:“竣工”,
“值”:null
}
].filter(函数(param){return param.value;})
console.log(valueArray)
console.log(valueArray.length)
- 即使在执行
地图。每当您查找的元素中有空值时,
它最终被过滤掉了
- 因此,最好不要使用过滤器。根据修改您的代码
其他答案。切换到每一个或一些东西
- 虽然我有9个输入,但它只打印8个
请参阅下面的代码
var valueArray=[
{
“标签”:“收缩的”,
“值”:“收缩”
},
{
“标签”:“标题”,
“值”:“ContractTitle”
},
{
“标签”:“明年”,