Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript向数组中的每个值添加键_Javascript - Fatal编程技术网

JavaScript向数组中的每个值添加键

JavaScript向数组中的每个值添加键,javascript,Javascript,下面的数组由一个简单的数组组成。我试图实现的是在每个数组值前面放置一个键id,以实现类似的[“id:a”、“id:b”、“id:c”、“id:d”]有没有一种简单的方法来实现这一点?任何帮助都将不胜感激,谢谢 var test=['a'、'b'、'c'、'd']只需使用forEach在数组上迭代并设置值: var测试=['a'、'b'、'c'、'd'] test.forEach((v,i,arr)=>arr[i]=`id:${v}`) console.log(测试)您可以使用: var测试

下面的数组由一个简单的数组组成。我试图实现的是在每个数组值前面放置一个键
id
,以实现类似的
[“id:a”、“id:b”、“id:c”、“id:d”]
有没有一种简单的方法来实现这一点?任何帮助都将不胜感激,谢谢


var test=['a'、'b'、'c'、'd']
只需使用forEach在数组上迭代并设置值:

var测试=['a'、'b'、'c'、'd']
test.forEach((v,i,arr)=>arr[i]=`id:${v}`)
console.log(测试)
您可以使用:

var测试=['a','b','c','d'];
函数集合ID(项、索引){
var fullname=“id:”+项;
返回全名;
}
var输出=test.map(setID);

控制台日志(输出)使用map创建一个新数组,只需在字符串前面加上“id:”

var测试=['a','b','c','d'];
var newTest=test.map(函数(项){return'id:'+item})
console.log(newTest);//给出[“id”:“a”,“id”:“b”,“id”:“c”,“id”:“d”];

console.log(newTest[1]);//给出1d:b正如@klugjo所说的使用地图,如下所示:

var array1 = ['a','b','c','d'];

const map1 = array1.map(x => 'id:' + x);

console.log(map1);

使用
数组。从
开始!它真的很简单,速度也更快

var测试=['a','b','c','d'];
var newTest=Array.from(test,val=>id:'+val);

console.log(newTest)使用您只需在每个元素前面添加
“id:”
,然后迭代。虽然这到底是用来干什么的?这似乎没什么帮助。似乎您希望将其设置为具有键的对象,而不是字符串数组。请像这样使用映射:text.map(x=>“id:”+x),查找浏览器支持。映射有效,是一个明确的解决方案。只想补充一点,因为内存中有两个数组,所以它的内存大小增加了一倍。这可能是重要的,也可能不是重要的,但要考虑的是:“ObdidiaNead工作得很好,但我想把它变成这样的东西[{ id”:“a”},{ id”:“b”},{ id”:“c”},{“id”:“d”},我们不想要数组中的对象,只想在字符串前面加上id:对不起-误读了-您仍然可以使用相同的-但是返回一个字符串而不是一个对象-答案被修改。