javascript - 如何准备数据字符串但字符串不以null结尾

标签 javascript jquery ajax string null

我想制作像 (11,22) , (11,22,33) , (11,22,33,44) , (11,null,33,44),(11,null ,null,44),(11,null,33)

但它不应该以 null 结尾。 (意味着数据集字符串不应该像这样 (11,22,null,null) )。

hpVal=11, outputRpmVal=22,ratioVal=33,outputSpeedVal=44 

假设上述值将传入 arrayPrepareFunction。有人可以帮我制作像上面提到的格式一样的数据集字符串吗?

在设置数组时,不应使用else if

动态数据将来自用户端。我将附上屏幕截图。根据用户选择值将会改变。

enter image description here

这是选择框顺序hpValoutputRpmValratioValoutputSpeedVal

例如:如果用户选择:
(hpVal=11,outputRpmVal=null,ratioVal=33) 数据集应类似于 (11,null,33)

如果用户选择:
(hpVal=11,outputRpmVal=null,ratioVal=null,outputSpeedVal=44) 数据集应类似于 (11,null,null,44)

如果用户选择:
(hpVal=11,outputRpmVal=22,ratioVal=null,outputSpeedVal=null) 数据集应类似于 (11,22)

var dataSet,avoid=",null";

function arrayPrepareFunction(hpVal,outputRpmVal,ratioVal,outputSpeedVal){
  dataSet="("+hpVal+","+outputRpmVal+","+ratioVal+","+outputSpeedVal+")";

  dataSet = dataSet.replace(avoid,'');
  if(dataSet.indexOf(avoid) != -1){
      dataSet = dataSet.replace(avoid,'');
  }

  console.log(dataSet);
}

arrayPrepareFunction(11,null,33)
arrayPrepareFunction(11,null,null,44)
arrayPrepareFunction(11,22,null,null)

最佳答案

如果您想从所有传递的参数构造一个字符串,并避免在字符串的最后出现null,最好的解决方案是将输入视为一个数组,检查null项,然后将此数组转换为字符串

这就是您的代码:

function arrayPrepareFunction(hpVal, outputRpmVal, ratioVal, outputSpeedVal) {
  dataSet = Object.values(arguments);

  var i = dataSet.length;
  while (dataSet[i - 1] == null && i > 0) {
    dataSet.pop();
    i--;
  }
    dataSet = "(" + dataSet.map(a => a == null ? "" + a : a).join(", ") + ")";
  console.log(dataSet);
}
  • 它使用Object.values(arguments)来获取输入参数 作为数组。
  • 如果数组的最后一项为null,则不断删除它。
  • 然后将此数组转换为字符串

演示:

var dataSet, avoid = ",null";

function arrayPrepareFunction(hpVal, outputRpmVal, ratioVal, outputSpeedVal) {
  dataSet = Object.values(arguments);

  var i = dataSet.length;
  while (dataSet[i - 1] == null && i > 0) {
    dataSet.pop();
    i--;
  }
  dataSet = "(" + dataSet.map(a => a == null ? "" + a : a).join(", ") + ")";
  console.log(dataSet);
}

arrayPrepareFunction(11, null, 33)
arrayPrepareFunction(11, null, null, 44)
arrayPrepareFunction(11, 22, null, null)

关于javascript - 如何准备数据字符串但字符串不以null结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51443681/

相关文章:

javascript - 第一次点击时弹出窗口会显示 div

javascript - 如何在 chartjs 中将 Y 轴值从 float 更改为整数?

jquery - 使用 jQuery 显示元素不会在 IE8 中将我的页脚向下推

php - jQuery ajax 错误

JavaScript 方法以/分配的变量开头??非常困惑

javascript - 使用 javascript 在 <div> 表上突出显示当前日期

javascript - Socket.io 客户端到客户端逻辑,有很多用户

javascript - 不显示 bool 值为 true 的帖子

javascript - Accordion 切换箭头

JavaScript/jQuery AJAX - 将异步数据返回到我的同步程序中