我有一个match()返回的数组。所以元素是这样排序的:
0 => "value1"
1 => "value2"
...
我想要做的是创建一个由第一个数组的值索引的新数组,所以它看起来像这样:
value1 => "newValue1"
value2 => "newValue2"
...
如何在javascript中执行此操作? (我在javascript方面不是很先进,对不起,如果它看起来很简单)
答案 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/