Javascript 将null值替换为JSON输出数组中的字符串-V2.0

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

我试图将提交表单后通过JSON获得的空值替换为字符串值,如“n/a”或“notspecified”。我添加了@Winter Solider建议的几行代码,下面对其进行了注释,以检查空值并替换它,但我添加的代码不起作用。想法呢?
-谢谢

    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”
},
{
“标签”:“明年”,