希望有人可以协助并希望在JavaScript中可以实现这一点。我基本上有以下格式的字符串:
A,B,C:d,E,F
我想要实现的是将左侧JavaScript变量配对到“:”左侧的方法,右侧的值位于“:”的右侧
我基本上希望设置以下变量,以便我可以在我的编码中使用,即:
var A = D;
var B = E;
var C = F;
然后我可以将A,B和C的值用作其他JavaScript函数的参数。
我已经查看了此字符串操作的split和slice方法,但不确定如何将左侧与右侧值配对。
任何帮助都会很棒,谢谢!
答案 0 :(得分:5)
使用此方法(将变量附加到对象),您可以在没有eval语句的情况下引用代码中的变量。
a = "A,B,C:D,E,F";
array = a.split(":"); //split on the colon, get two strings
lefts = array[0];
rights = array[1];
obj = {} //object to attach variables to.
for( var i = 0; i < lefts.length; i++ )
{
obj[lefts[i]] = rights[i]; //set the member variables of obj
}
obj.A // D
obj.B // E
obj.C // F
如果您关心浪费的逗号属性,请在设置对象之前检查lefts [i]是否等于逗号。
答案 1 :(得分:0)
此处的pairup
函数会生成执行配对的代码。您需要eval
返回的代码才能实际执行它。
<script>
function pairup(s) {
s = s.split(":");
var lhs = s[0].split(",");
var rhs = s[1].split(",");
var pairing = "";
for (var i = 0; i < lhs.length; i++) {
pairing += "var " + lhs[i] + " = " + rhs[i] + "; \n";
}
return pairing;
}
alert(pairup("A,B,C:D,E,F"));
</script>
如果您准备好绑定变量值的对象,那么您可以这样做:
<script>
function pairup(s, oleft, oright) {
s = s.split(":");
var lhs = s[0].split(",");
var rhs = s[1].split(",");
for (var i = 0; i < lhs.length; i++) {
oleft[lhs[i]] = oright[rhs[i]];
}
}
oleft = {};
oright = { firstName: "F", lastName: "L" };
pairup("givenName,familyName:firstName,lastName", oleft, oright);
alert(oleft.givenName + ", " + oleft.familyName);
</script>