javascript - 检查对象中逗号分隔的字符串

标签 javascript jquery arrays object

我在 Javascript 中有以下对象:

{
    birthdate: "25/11/2015",
    coccidiose: "on",
    giardia: "on",
    holiday: "on",
    holidaycountrycheck1: "on",
    holidayenddate: "03/12/2015",
    holidayeurope: "true",
    holidaystartdate: "02/12/2015",
    name: "qsdf",
    treatmentstartdate: "18/11/2015",
    type: "cat",
    vaccinaties: "11/11/2015, 18/11/2015",
    weight: "qsd"
}

该对象是通过以下方式在提交表单时生成的:

$('.js--submit-form__add-animal').on('click', function (e) {
    e.preventDefault();
    dataArray = $(this).closest('form').serializeArray(),
        len = dataArray.length,
        dataObj = {};

    for(i = 0; i < len; i++) {

        if(([dataArray[i].name] in dataObj)) {
            dataObj[dataArray[i].name] = dataObj[dataArray[i].name] + ", " + dataArray[i].value;
        } else {
            dataObj[dataArray[i].name] = dataArray[i].value;
        }
    }

    console.log(dataObj);

});

如您所见,“疫苗接种”有一个逗号分隔的字符串。我想(动态)检查 dataObj 并将所有逗号分隔的字符串更改为数组。这里正确的方法是什么?

最佳答案

  1. 循环对象
  2. 检查值是否为常量
  3. 用逗号分割得到数组

var obj = {
  birthdate: "25/11/2015",
  coccidiose: "on",
  giardia: "on",
  holiday: "on",
  holidaycountrycheck1: "on",
  holidayenddate: "03/12/2015",
  holidayeurope: "true",
  holidaystartdate: "02/12/2015",
  name: "qsdf",
  treatmentstartdate: "18/11/2015",
  type: "cat",
  vaccinaties: "11/11/2015, 18/11/2015",
  weight: "qsd"
};

// Get array of keys and loop over it
Object.keys(obj).forEach(function(e) {
  if (obj[e].indexOf(',') > -1) {
    // If value contains `,` then split it by , with prev/next spaces
    obj[e] = obj[e].split(/\s*,\s*/);
  }
});

document.getElementById('result').innerHTML = JSON.stringify(obj, 0, 4);
console.log(obj);
<pre id="result"></pre>

关于javascript - 检查对象中逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33958797/

相关文章:

javascript - HTML实现接受文本和图像的输入框

php - 将数组内爆为字符串以创建 sql 查询

javascript - Google API 转换持续时间

javascript - 使用多个按钮触发同一个弹出框

javascript - 使用带有 CSS 的 Material-UI(React) 按钮, "select all immediate children"似乎不起作用

javascript - 每个的 Google Apps 脚本都会导致错误,但不会

c - 动态分配内存有必要用new吗?

javascript - 在 Firefox 中定义自定义键

javascript - jquery 无法识别表单输入字段

javascript - 无法使用 jquery 删除表中的 tr