Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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_Arrays - Fatal编程技术网

Javascript 修改数组对象中的键字符串

Javascript 修改数组对象中的键字符串,javascript,arrays,Javascript,Arrays,我有以下对象数组: [{url:"http://www.url1",value: "number1"},{url:"http://www.url2",value: "number2"},{url: "http://www.url3", value: "number3"},etc...] 我想替换所有的http://www.中包含一个空字符串 看看一些答案,我发现: var resultArr = arr.map(function(x){return x.replace(/http://www.

我有以下对象数组:

[{url:"http://www.url1",value: "number1"},{url:"http://www.url2",value: "number2"},{url: "http://www.url3", value: "number3"},etc...]
我想替换所有的
http://www.
中包含一个空字符串

看看一些答案,我发现:

var resultArr = arr.map(function(x){return x.replace(/http://www./g, '');});
但是,它不适用于我的情况,因为
map
仅适用于数组

所以我也看了这个:

array = [{url:1,value: 2},{url:3,value: 4},{url: 5, value: 6}]

Object.keys(array).map(function(url, value) {
   array[value] *= 2;
});
但请将此返回给我:
[未定义,未定义,未定义]
。此外,对于最后一个解决方案,我真的不知道应该在哪里使用


有什么想法吗

您需要正确使用语法<代码>映射
正常,或者在本例中,当您进行变异时,
forEach

var数组=[{url:'http://www.example.com?xyz,值:2},
{url:'http://www.example.com?ok,值:4},
{url:'http://www.example.com?hello“,值:6}]
array.forEach(函数(obj){
目标值*=2;
obj.url=obj.url.replace(/http:\/\/www\./g');
});

console.log(数组)您可以像这样迭代数组:

array.forEach(function(entry) {
    entry.url = entry.url.replace('http://www.','');
});

你快到了<代码>映射
并不是真正的方法,因为您想要修改列表中的项目<代码>forEach更有意义

var lst=[{
url:“http://www.url1",
值:“number1”
}, {
url:“http://www.url2",
值:“number2”
}, {
url:“http://www.url3",
值:“number3”
}];
第一个forEach(对象=>
对象键(obj)
.forEach(键=>
obj[key]=obj[key].替换(/http:\/\/www\./g',);
控制台日志(lst)es5:

es6+:

var数组=[{url:http://www.url1,值:“number1”},{url:http://www.url2,值:“number2”},{url:http://www.url3,值:“number3”}];
对于(var i=0;iconsole.log(数组)请注意,您需要转义正则表达式中的特殊字符。但是,您可以执行
.split('.').pop()
来获取
url1
url2
等等。
array.map(function(element) {
  return {
    value: element.value,
    url: element.url.replace('http://www.', '')
  }
})
array.map(element => ({
   ...element,
   url: element.url.replace('http://www.', '')
}))