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

3

我有一个这样的数组。

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

我希望它能以键值对的形式呈现。
[1]Partner Number - 1044
[2]First Name - rob
[3] rank -302

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

3
你具体有什么问题?你知道怎样使用 for 循环迭代数组吗?你知道什么是对象吗?如果不知道,建议先阅读教程:http://eloquentjavascript.net/chapter4.html。请注意,我已尽量使翻译通俗易懂但未改变原意。 - Felix Kling
5个回答

4

在现代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);

在jsFiddle上试一下:


1

试试这个:

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];
}

然后你可以像这样访问它,
object["PartnerNumber"]
object["FirstName"]
object["Rank"]

1
"object" 是一个保留关键字。 - Matías Fidemraizer
2
它不是 .. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words - zahirdhada
1
好的,它不是保留的。无论如何,我不会使用这个标识符。 - Matías Fidemraizer

1

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);


1
这会比赋值解决方案提高性能吗? - aldo.roman.nurena
我在Chrome中得到了这个:Array[6] 0:“PartnerNumber”, 1:1044, 2:“FirstName”, 3:“rob”, 4:“Rank”, 5:302。我认为它没有按预期的方式推送。 - aldo.roman.nurena

0
obj={};

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

现在如果你的数组是这样的:

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

你将会得到一个新的对象,如下所示:

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


0

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

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

编辑:在评论中添加了代码

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, ' $1').replace(',', '')] = myArray[i + 1];
}

console.log(myObj);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接