将数组从键转换为值

时间:2015-08-03 09:39:35

标签: javascript arrays

我有一个match()返回的数组。所以元素是这样排序的:

0 => "value1" 1 => "value2" ...

我想要做的是创建一个由第一个数组的值索引的新数组,所以它看起来像这样:

value1 => "newValue1" value2 => "newValue2" ...

如何在javascript中执行此操作? (我在javascript方面不是很先进,对不起,如果它看起来很简单)

2 个答案:

答案 0 :(得分:1)

您可以使用Array.reduce,如下所示。

var arr1 = ["val1","val2","val3"];

var obj = arr1.reduce(function(prev,next,index){
    prev[next] = "newValue"+(index+1);
    return prev;
},{});

如果您打印obj的内容,它将显示为下面的

Object {val1: "newValue1", val2: "newValue2", val3: "newValue3"}

答案 1 :(得分:1)

我假设您正在讨论此方法https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/match

首先要知道的是,Javascript中没有“索引数组”,在最好的情况下只有一个对象。

所以,假设你想要从中得到(索引是隐含的)

["value1", "value2", ...]

到这个

{
    "value1": "newValue1",
    "value2": "newValue2",
    [...]
},

一个简单的forEach将完成这项工作:

var myArray = ["value1", "value2", "value3"];
var result = {};

myArray.forEach(function(item){
    result[item] = "new"+item;    
});

这是一个可以执行你想要的JSFiddle:http://jsfiddle.net/0qqq6mm1/