感觉可能有更好的方式。
var values = resp.split(':');
var delta = values[0]; var newvalue = values[1]; var admin = values[2];
答案 0 :(得分:3)
我只能想到:
var values = resp.split(':');
var delta = values[0],
newvalue = values[1],
admin = values[2];
或作为lonesomeday建议:
var values = resp.split(':'),
delta = values[0],
newvalue = values[1],
admin = values[2];
答案 1 :(得分:3)
New in JavaScript 1.7 - Ignoring some returned values:
var [delta, newvalue, admin] = resp.split(':');
答案 2 :(得分:2)
在我看来,不重复var
关键字会更好。所以:
var values = resp.split(':'),
delta = values[0],
newvalue = values[1],
admin = values[2];
(有或没有逗号后的换行符,有或没有对齐等号。)
但是除此之外别无他法。
除非你愿意使用像这样的辅助函数做一些愚蠢的:
function assignFromArray(vars, vals){
for (var i=0; i<vars.length; i++)
window[vars[i]] = vals[i];
}
assignFromArray(["delta","newValue","admin"], resp.split(":"));
(当然这只适用于全局变量,尽管在非全局范围内为某些本地对象创建属性非常容易。)
答案 3 :(得分:2)
您可以避免使用显式索引,只需相应地对声明进行排序。当然也可以使用单个var
关键字。
更改和扩展更容易,因为您可能希望以数组中的外观顺序获得声明。
var values = resp.split(':');
var delta = values.shift();
var newvalue = values.shift();
var admin = values.shift();
只有一个声明:
var values = resp.split(':'),
delta = values.shift(),
newvalue = values.shift(),
admin = values.shift();
答案 4 :(得分:1)
使用一个漂亮的小assign()函数将值与新对象中的键相关联。然后,返回对象:
var assign = function(values, keys) {
var i, vmax, kmax, output = {};
for(i=0, vmax=values.length, kmax=keys.length; i<vmax && i<kmax; i++) {
output[keys[i]] = values[i];
}
return output;
};
var result = assign(["bar","beer"], ["foo","free"]);
console.log(result);
// returns { "foo" : "bar", "free" : "beer" } accessed as result.foo and result.free
答案 5 :(得分:0)
用于循环
var values = resp.split(':');
for(var i=0; i<values.length; i++) {
var value = values[i];
alert(i =") "+value);
}
答案 6 :(得分:0)
要摆脱阵列,你可以尝试这样的事情:
var delta = resp.substring(0, resp.indexOf(':')),
newvalue = resp.substring(resp.indexOf(':') + 1, resp.lastIndexOf(':')),
admin = resp.substring(resp.lastIndexOf(':') + 1, resp.length);
别担心,我不期待接受的答案! :)只是试图提出另一种看待事物的方式。