我一直试图找出这一段时间。
我需要编写一个函数,通过参数获取属性的值。这将最大限度地减少我必须编写的代码。它是属于游戏循环的函数(每秒调用一次)
该函数只取一个数字并除以预先确定的数字,然后在数字后面加上相应的字母(1.000将变为1k)
游戏使用了大量的数字,对于10个数字中的9个,我想这样做。
示例:
function Truncate (object, rss, idtr, idtr1, idtr2) {
var n1 = 1000;
var n2 = 1000000;
var n3 = 1000000000;
var n4 = 1000000000000;
if ( rss == "gas" ){ var a1 = object.currentgas;
if (a1 < n1) {
trunkholdergas = a1;
document.getElementById(idtr).innerHTML = " "; }
else if (a1 >= n1 && a1 < n2) {
trunkholdergas = a1 / n1;
document.getElementById(idtr).innerHTML = "k"; }
我在循环中调用此行:
Truncate (Player, 'gas', 'trunkgas');
由于我使用了一个工作,我创建了一个if语句系统,所以我的函数知道如何处理我给它。这是有效的,但我必须指定所有我宁愿直接传递属性的地方。
我还发现,如果我将变量作为参数给出,它将不允许我初始化它的值。含义我还必须指定包含每种情况的变化值的变量。
像这样不起作用:
Truncate (Player, 'gas', 'trunkgas', vari);
if ( rss == "gas" ){ var a1 = object.currentgas;
if (a1 < n1) {
vari = a1;
document.getElementById(idtr).innerHTML = " "; }
我只是做错了还是这些javascripts限制?
我正在寻找一个纯粹的JavaScript解决方案,因为这正是我目前正在学习的内容。
编辑:问题已经解决。对于在他/她的项目中需要类似功能的人来说,代码是:function Truncate (object, idtr, idtr1) {
var n1 = 1000;
var n2 = 1000000;
var n3 = 1000000000;
var n4 = 1000000000000;
var a1 = object;
var trunkholder = 0;
if (a1 < n1) {
trunkholder = a1;
document.getElementById(idtr).innerHTML = " ";
document.getElementById(idtr1).innerHTML = trunkholder.toFixed(2); }
else if (a1 >= n1 && a1 < n2) {
var b = a1 / n1;
trunkholder = b;
document.getElementById(idtr).innerHTML = "k";
document.getElementById(idtr1).innerHTML = trunkholder.toFixed(2);}
else if(a1 >= n2 && a1 < n3) {
var c = a1 / n2;
trunkholder = c;
document.getElementById(idtr).innerHTML = "m";
document.getElementById(idtr1).innerHTML = trunkholder.toFixed(2);}
else if (a1 >= n3 && a1 < n4){
var d = a1 / n3;
trunkholder = d;
document.getElementById(idtr).innerHTML = "b";
document.getElementById(idtr1).innerHTML = trunkholder.toFixed(2);}
else if ( a1 >= n4 ) {
var e = a1 / n4;
trunkholder = e;
document.getElementById(idtr).innerHTML = "t";
document.getElementById(idtr1).innerHTML = trunkholder.toFixed(2);}
};
调用该函数:
Truncate (Player.currentgas, 'trunkgas', 'currentgas');
它使用指定属性的值和我用于显示数字和相应字母的元素的id名称。它只使用2个变量来存储原始数字和修改后的数字,直接传递给接口。这样你就可以无限次地调用它。
希望这对某人有用!
答案 0 :(得分:0)
我不确定我是否理解这个问题,但可以将JavaScript对象属性传递给函数。您可以使用Object.keys()
获取对象包含的属性列表,并将字符串值发送给函数。您可以在此处阅读更多内容https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys。
如果您的意思是传递该对象属性的值,那么它就像object["property"]
或object.property