我有一个 JSON,其中包含一些连接成字符串的值,但是当我更改 JSON 的值时,字符串不采用名称值。如何在不重新声明相同字符串的情况下使字符串采用新值?
请参阅我可以轻松地将其放在string = name.first + "<br />"+name.last;
更改 JSON 值的下方,但是当我想编辑该字符串的格式时,我必须更改它两次。
我有一个 JSON,其中包含一些连接成字符串的值,但是当我更改 JSON 的值时,字符串不采用名称值。如何在不重新声明相同字符串的情况下使字符串采用新值?
请参阅我可以轻松地将其放在string = name.first + "<br />"+name.last;
更改 JSON 值的下方,但是当我想编辑该字符串的格式时,我必须更改它两次。
这不是变量的工作方式。您必须再次设置 的值string
才能更新。
这是一个改进的版本,因此如果您想编辑某些内容,则不必更改两次:
function generateString(name) {
return name.first + "<br />"+name.last;
}
var string = generateString(name);
这不会像您描述的那样起作用,但是您可以声明一个返回适当字符串的函数。
所以而不是
string = name.first + "<br />" + name.last;
你会有:
var stringfunction = function() {return name.first + "<br />" + name.last;}
当你想使用它时,你会调用它:
alert(string); //old
alert(stringfunction()); //new
编辑:我刚刚意识到您正在谈论更改格式(大概在运行时)。在 javascript 中有多种使用字符串格式的方法,这意味着您可以在 中使用“格式”变量stringfunction
,您可以在运行时更改该变量以修改结果字符串的格式。自从我使用其中一种工具以来已经太久了,所以我将把它留给其他人来解释如何在 javascript 中进行字符串格式化。
这是因为您的字符串是基本类型,因此包含实际数据而不是指针。当您更改您认为应该更改字符串的数据时,它只会更改数据。只需重新发布用于构造字符串的代码即可看出这一点
$('#test').empty().append(name.first + "<br />"+name.last);