Javascript 将键值推送到json对象并在ajax请求中传递
我有一个使用ajax和香草javascript提交的表单,如下所示。我试图实现的是将所有选择的值保存到项中,这很好 现在我需要将这些值及其键推送到对象obj,该对象将创建如下对象,并在我的xhttp.send()中传递它 JS代码Javascript 将键值推送到json对象并在ajax请求中传递,javascript,json,ajax,Javascript,Json,Ajax,我有一个使用ajax和香草javascript提交的表单,如下所示。我试图实现的是将所有选择的值保存到项中,这很好 现在我需要将这些值及其键推送到对象obj,该对象将创建如下对象,并在我的xhttp.send()中传递它 JS代码 saveUserSetting.addEventListener('click', function () { var links = document.querySelectorAll('.main-c
saveUserSetting.addEventListener('click', function () {
var links = document.querySelectorAll('.main-content .dropdown > a');
for (var i = 0; i <= links.length; i++) {
var obj = {};
var items = links[i].textContent;
console.log(items); // Items will have the values now English, USA, Production. i want to push this values to
}
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "data.json", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
// response
}
};
xhttp.send("location=USA&langugage=English&function=production");
});
saveUserSetting.addEventListener('click',函数(){
var links=document.querySelectorAll('.main content.dropdown>a');
对于(var i=0;i如果我正确阅读了您的问题,您可以生成数组:
['English', 'USA', 'Production']
然后,获得所需结果的一种方法是将for
循环替换为以下内容:
var labels = ['language', 'location', 'function']
var obj = links.reduce((output, item, index) => {
output[labels[index]] = item
}, {})
这只是使用reduce
执行带有标签的数组到对象的转换
var labels = ['language', 'location', 'function']
var obj = links.reduce((output, item, index) => {
output[labels[index]] = item
}, {})