javascript 如何将我的数据数组转换为键值对

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18204058/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-27 11:04:31  来源:igfitidea点击:

How to convert my Array of data to key & value pair

javascriptjqueryarrays

提问by gaganHR

I have a array like this.

我有一个这样的数组。

My Array= PartnerNumber,1044,FirstName,rob,Rank,302

I would like it to be represented as key and value pair

我希望它表示为键和值对

[1]Partner Number - 1044
[2]First Name - rob
[3] rank -302

I would need to post this array data and form a query on my server side control.

我需要发布这个数组数据并在我的服务器端控件上形成一个查询。

Thanks in advance

提前致谢

回答by Matías Fidemraizer

In modern Web browsers, you can use the very useful array.forEachfunction:

在现代 Web 浏览器中,您可以使用非常有用的array.forEach功能:

var array = ["PartnerNumber",1044,"FirstName","rob","Rank",302];

var dictionary = {};

array.forEach(function(item, index) {
    if(index % 2 === 0) {
       dictionary[item] = array[index + 1];
    }
});

document.write("Partner number:" + dictionary.PartnerNumber);

Try it on jsFiddle:

在 jsFiddle 上试试:

回答by zahirdhada

Try this:

试试这个:

var a=["PartnerNumber",1044,"FirstName","rob","Rank",302];
var object={};
for(var i=0;i<a.length;i+=2)
{
    object[a[i]]=a[i+1];
}

Then you can access it like,

然后你可以像这样访问它,

object["PartnerNumber"]
object["FirstName"]
object["Rank"]

回答by Rohan Kumar

Try this,

试试这个,

var arr=['PartnerNumber',1044,'FirstName','rob','Rank',302];
var newArr={};
for(var i=0,len=arr.length;i<len;i+=2) {
    newArr[arr[i]]=(arr[i+1]);
}
console.log(newArr);

回答by Nicolae Olariu

Check this working plunk. Is this what you want? If you open up the console, it will display:

检查这个工作plunk。这是你想要的吗?如果你打开控制台,它会显示:

Object { Partner Number: 1044,  First Name: "rob",  Rank: 302}

EDIT: added code in comment

编辑:在评论中添加代码

var myArray = ["PartnerNumber", 1044, "FirstName", "rob", "Rank", 302],
    myObj = {};

for (var i = 0; i < myArray.length; i++)
{
  if (i % 2 === 0)
    myObj[myArray[i].replace(/([A-Z])/g, ' ').replace(',', '')] = myArray[i + 1];
}

console.log(myObj);

回答by schnill

obj={};

for(i=0; i<arr.length-1; i=i+2){
   obj[arr[i]] = arr[i+1];
}

now if your array is,

现在如果你的数组是

arr=[key1,value1,key2,value2,key3,value3];

you will get a new object as,

你会得到一个新的对象,

obj = {key1:value,key2:value2,key3:value3};

obj = {key1:value,key2:value2,key3:value3};