javascript - 如何将数组参数化为单个逗号分隔值?

标签 javascript jquery

如何参数化数组,使其成为以逗号分隔的单个名称值对。使用 jQuery $.param 为每个数组值创建一个参数,而不仅仅是一个。显然没有选项或设置可以改变这一点。我正在寻找的不仅仅是使用 Array.join 因为我需要深度序列化和 url 编码。是否有 jQuery.param 选项或实用程序库?

使用 jQuery 的 param 方法:

$.param({ a: [2, 3, 4] }); // "a[]=2&a[]=3&a[]=4"

我需要:

var p = {a: [2, 3, 4]};
param(p) //"a=2,3,4"

最佳答案

最简单的情况是,假设对象的每个属性的值都是一个数组:

function param(obj) {
    var output = [];
    for (var prop in obj) {
        if (obj.hasOwnProperty(prop)) {
            output.push(prop + '=' + obj[prop].join(','));
        }
    }
    return output.join('&');
}

var p = {
    a: [2, 3, 4],
    b: ['something','else']
};
console.log(param(p)); //a=2,3,4&b=something,else

JS Fiddle demo .

关于javascript - 如何将数组参数化为单个逗号分隔值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20385239/

相关文章:

javascript - chrome.webrequest.onCompleted 与 chrome.runtime.onMessage 竞赛

jquery - 更改从服务器发送的事件生成的元素的 CSS

jquery - 使用 JQuery-File-Upload 和 Paperclip 时出现多个文件上传错误

javascript - GraphQL 和 dataLoader 在不同的应用程序/服务器上

javascript - 将大型 JSON 数据集从 REST API 转换为新的转换文件

javascript - setTimeout 时页面不更新?

javascript - jQuery-UI 日期选择器 : Uncaught TypeError: Object [object Object] has no method 'zIndex'

javascript - 在 HTML 页面上显示特定部分时运行 JS

javascript - DOM 准备好后检查元素是否存在

javascript - 显示来自两个下拉菜单的图像