将数组从键转换为值

Transforming an array from key to value

本文关键字:转换 数组      更新时间:2023-09-26

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

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

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

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

如何在javascript中做到这一点?(我在javascript方面不是很先进,抱歉,如果它看起来很简单)

我想你说的是这个方法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/

可以使用Array。减少如下所示。

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"}