Javascript 如何替换对象中键的值
我是新来的Javascript 如何替换对象中键的值,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我是新来的react redux。我有一个对象数组,就像 let result = [ {Id :'a',temp:5,data:'abc (c:1'},{Id :'a',temp:5,data:'pqr (c:1'}{Id :'a',temp:5,data:'xyz (c:1'}] 现在,我想做的是,有一个名为data的键,有一些值,我想取这个数据键中括号前面的值 我想看的是一个物体 {Id :'a',count:5,data:'abc'} 我所拥有的是, 我有一个正则表达式,我用它来得到
react redux
。我有一个对象数组,就像
let result = [ {Id :'a',temp:5,data:'abc (c:1'},{Id :'a',temp:5,data:'pqr (c:1'}{Id :'a',temp:5,data:'xyz (c:1'}]
现在,我想做的是,有一个名为data
的键,有一些值,我想取这个数据键中括号前面的值
我想看的是一个物体
{Id :'a',count:5,data:'abc'}
我所拥有的是,
我有一个正则表达式,我用它来得到那个值
我使用了循环
for (let i = 0; i <= result.length - 1; i++) {
let regex = /^[^\(]+/;
let value = data.match(regex)[0].trim();
result[i].data = value
}
fetchQuestions() {
let previous_data = { ...this.props.data };
let result = [];
for (let key in previous_data) {
result = [...result, ...previous_data[key]];
}
for (let i = 0; i <= result.length - 1; i++) {
let regex = /^(.*)\(/;
let value = result[i].technology.match(regex)[1].trim();
result[i].technology = value;
}
this.props.fetchQuestions(result);
}
for(设i=0;i您可以使用split(“(”)
而不是regex来获得相同的输出:
让结果=[{
Id:'a',
温度:5,,
数据:'abc(c:1'
}, {
Id:'a',
温度:5,,
数据:'pqr(c:1'
}, {
Id:'a',
温度:5,,
数据:'xyz(c:1'
}];
对于(设i=0;i您可以使用split(“(”)
而不是regex来获得相同的输出:
让结果=[{
Id:'a',
温度:5,,
数据:'abc(c:1'
}, {
Id:'a',
温度:5,,
数据:'pqr(c:1'
}, {
Id:'a',
温度:5,,
数据:'xyz(c:1'
}];
对于(设i=0;i),您可以编写一个正则表达式,为(
之前的值创建一个组,然后从匹配中获取它
让结果=[
{
Id:'a',
温度:5,,
数据:'abc(c:1'
},
{
Id:'a',
温度:5,,
数据:'pqr(c:1'
},
{
Id:'a',
温度:5,,
数据:'xyz(c:1'
}
]
对于(设i=0;i),您可以编写一个正则表达式,为(
之前的值创建一个组,然后从匹配中获取它
让结果=[
{
Id:'a',
温度:5,,
数据:'abc(c:1'
},
{
Id:'a',
温度:5,,
数据:'pqr(c:1'
},
{
Id:'a',
温度:5,,
数据:'xyz(c:1'
}
]
对于(设i=0;i您需要在迭代时访问每个对象的数据
属性,以便对其使用.match
:
让结果=[{
Id:'a',
温度:5,,
数据:'abc(c:1'
}, {
Id:'a',
温度:5,,
数据:'pqr(c:1'
}, {
Id:'a',
温度:5,,
数据:'xyz(c:1'
}];
对于(设i=0;i您需要在迭代时访问每个对象的数据
属性,以便对其使用.match
:
让结果=[{
Id:'a',
温度:5,,
数据:'abc(c:1'
}, {
Id:'a',
温度:5,,
数据:'pqr(c:1'
}, {
Id:'a',
温度:5,,
数据:'xyz(c:1'
}];
对于(让i=0;i试试这个
result.map(el => {
el.data = el.data.match(/^(\w+)/)[0];
return el;
})
试试这个
result.map(el => {
el.data = el.data.match(/^(\w+)/)[0];
return el;
})
试试这个-let regex=/^(\w+)/;试试这个-let regex=/^(\w+)/;使用这个正则表达式,我在数据值中得到了一个括号,如果我使用1,那么它将给出null。我认为应该是0Hey@shubham我得到了这么多解决方案,哪一个更合适efficient@ganeshk,索引将为1以获得第一个组匹配项。此外,正则表达式解决方案将比使用拆分的字符串操作更有效满足您的用例的解决方案对您来说应该足够好。我刚刚更新了我的问题,关于减速机的值正在更新,但它不应该使用此正则表达式更新。我在数据值中得到一个括号,如果我使用1,则会给出空值。我想应该是0Hey@shubham我得到了这么多解决方案,哪一个更合适efficient@ganeshk,索引将为1以获得第一个组匹配。此外,正则表达式解决方案将比使用拆分的字符串操作更有效。解决方案中满足您的用例的任何正则表达式都应该足够好。我刚刚更新了我的问题,关于reducer的值正在更新,但不应使用