Javascript 如何设置关联数组?
我正在尝试向服务器发送一些数据 我通过指定元素进行了一些映射,我想发送一个结果Javascript 如何设置关联数组?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在尝试向服务器发送一些数据 我通过指定元素进行了一些映射,我想发送一个结果 var slectVal = {}; selectVal = $.map(filterValueArray, function(el) { return ( el.parentNode.getAttribute('data-filter-name') + ":" + el.value ) }); var data = { "filters" : selectVal } $.
var slectVal = {};
selectVal = $.map(filterValueArray, function(el) {
return (
el.parentNode.getAttribute('data-filter-name') + ":" + el.value
)
});
var data = {
"filters" : selectVal
}
$.post(url, data).done(function(res){
var postStatus = res.status;
});
一切正常,但发送到服务器的是:
filters[]:Name:SomeName
filters[]:City:SomeCity
如何将其作为关联数组发送,如下所示:
filters[Name]:SomeName
filters[City]:SomeCity
更改数据的结构
var data = {filters: {}};
$.each(filterValueArray, function(_, el) {
data.filters[$(el).parent().data('filter-name')] = el.value;
});
$.post(url, data).done(function(res){
var postStatus = res.status;
});
$.map()
始终返回数组。您需要(并且已经声明)一个对象。adeneo的答案是正确的。我有一个错误:无法设置未定义的属性“Name”
,这是我的错,我在过滤器中忘记了一个s
,我现在就编辑它。