JavaScript从对象中的值中删除字符串

时间:2017-06-29 00:00:03

标签: javascript

我有一个对象:

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

有没有简单的方法来实现这一目标?

2 个答案:

答案 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文档,您将看到可以调用哪些类型和其他对象的函数。