我有一个对象:
let Data = {name: 'Flomo', age: 25, address: 'Sinkor', id: 'NMF25'}
我想控制整个对象的日志,但id值应该只包含最后三个字符。
像这样:
{name: 'Flomo', age: 25, address: 'Sinkor', id: 'F25'}
我这样做:
console.log(Data.replace(/NM/g, ''))
但我得到了:
TypeError: Data.replace is not a function
有没有简单的方法来实现这一目标?
答案 0 :(得分:4)
replace
是一种在String
上运行的方法,不会就地更改字符串。
如果您不担心更改原始数据,可以执行以下操作:
let Data = {name: 'Flomo', age: 25, address: 'Sinkor', id: 'NMF25'}
Data.id = Data.id.replace('NM', '')
console.log(Data);
或者,如果你不确定id
的第一个字符是什么(或者可能有多少个字符),你可以这样做:
let Data = {name: 'Flomo', age: 25, address: 'Sinkor', id: 'NMF25'}
Data.id = Data.id.substring(Data.id.length-3)
console.log(Data);
如果您需要保持原始数据不变,则可以复制该对象,但这可能很复杂,具体取决于对象中可能包含的数据:How do I correctly clone a JavaScript object?
答案 1 :(得分:0)
replace
功能适用于String
。你在Object
上调用该函数。
您可能打算在属性replace
的值上调用id
。我刚刚使用的术语可以帮助你在未来的心理上解决这样的问题!
如果您查看MDN的JavaScript文档,您将看到可以调用哪些类型和其他对象的函数。