看JS的源码的时候,发现有如下一个句子:
var t = this, a = t.data.cart_list, i = t.data.mch_list, c = [], e = [], s = [], r = [];
for (var l in a) a[l].checked && (c.push(a[l].cart_id), r.push({
cart_id: a[l].cart_id
}));for (var l in 0 < c.length && s.push({
mch_id: 0,
goods_list: r
}), i) {
//...
}其中的:
for (var l in 0 < c.length && s.push({
mch_id: 0,
goods_list: r
}), i) {
//...
}
实在无法理解 for in 还可以这么写,看不懂,哪位大神能看下这个句子怎么理解?
var t = this, a = t.data.cart_list, i = t.data.mch_list, c = [], e = [], s = [], r = [];
for (var l in a) a[l].checked && (c.push(a[l].cart_id), r.push({
cart_id: a[l].cart_id
}));for (var l in 0 < c.length && s.push({
mch_id: 0,
goods_list: r
}), i) {
//...
}其中的:
for (var l in 0 < c.length && s.push({
mch_id: 0,
goods_list: r
}), i) {
//...
}
实在无法理解 for in 还可以这么写,看不懂,哪位大神能看下这个句子怎么理解?
这个代码就等价于
0 < c.length && s.push({
mch_id: 0,
goods_list: r
});
for (var l in i) {
//...
}
这主要看i前面的逗号运算符(,),逗号运算符可以把一个表达式分成两个表达式,两个表达式从左到右的顺序被执行,并返回右边表达式的值。
如下面执行了两个prompt,a获得第二个输入的值
a = ( prompt("输入第一个值",1) , prompt("输入第二个值",2) );
alert(a);