Skip to content

Instantly share code, notes, and snippets.

@alanwei43
Created August 4, 2016 10:09
Show Gist options
  • Save alanwei43/81fed8ccf836ce2bfb26433551470bb5 to your computer and use it in GitHub Desktop.
Save alanwei43/81fed8ccf836ce2bfb26433551470bb5 to your computer and use it in GitHub Desktop.
LINQ to JavaScript
//TODO
/**
* filter
* map
* skip
* take
* aggregate
* sum
* order
*/
var _ = function (array) {
this.iterals = [];
this.isArray = function (para) {
return Array.isArray(para);
};
this.isGenerator = function (para) {
return para.next && para.return;
};
if (this.isArray(array)) {
var iteral = (function* () {
for (let item of array) {
yield item;
}
})();
this.iterals.push(iteral);
} else if (this.isGenerator(array)) {
this.iterals.push(array);
} else {
throw "error para type";
}
};
_.prototype.filter = function (filter) {
var lastIteral = this.getIteral();
var iteral = (function* () {
console.info("filter");
for (let item of lastIteral) {
if (filter(item)) yield item;
}
})();
this.iterals.push(iteral);
return new _(iteral);
};
_.prototype.map = function (map) {
var lastIteral = this.getIteral();
var iteral = (function* () {
console.info("map");
for (let item of lastIteral) {
yield map(item)
}
})();
this.iterals.push(iteral);
return new _(iteral);
};
_.prototype.skip = function (count) {
var lastIteral = this.getIteral();
var iteral = (function* () {
for (let item of lastIteral) {
}
})();
};
_.prototype.getIteral = function (index) {
if (arguments.length === 1) return this.iterals[index];
return this.iterals[this.iterals.length - 1];
};
_.prototype.each = function (each) {
var lastIteral = this.getIteral();
for (let item of lastIteral) {
each(item);
}
return this;
};
_.prototype.toArray = function () {
var items = [];
for (let item of this.getIteral()) {
items.push(item);
}
return items;
}
var collection = [
{
Pk_Id: 32,
ModifyTime: "/Date(1470299648877)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "3306",
AdviserCodeAfterModify: "3008",
CommissionAmountBeforeModify: 518.15,
CommissionAmountAfterModify: 3008,
ModifyReason: "all 3008",
ExtendAdviserNameBeforeModify: "李辉",
ExtendAdviserNameAfterModify: "晏雅玲"
},
{
Pk_Id: 31,
ModifyTime: "/Date(1470299551137)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "234",
AdviserCodeAfterModify: "3306",
CommissionAmountBeforeModify: 153.15,
CommissionAmountAfterModify: 518.15,
ModifyReason: "3306 518.15",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: "李辉"
},
{
Pk_Id: 30,
ModifyTime: "/Date(1470295282233)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "1234",
AdviserCodeAfterModify: "234",
CommissionAmountBeforeModify: 184.12,
CommissionAmountAfterModify: 153.15,
ModifyReason: "afeggg",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 29,
ModifyTime: "/Date(1470294935437)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "2003",
AdviserCodeAfterModify: "1234",
CommissionAmountBeforeModify: 485.15,
CommissionAmountAfterModify: 184.12,
ModifyReason: "afe",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 28,
ModifyTime: "/Date(1470294924593)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "50",
AdviserCodeAfterModify: "2003",
CommissionAmountBeforeModify: 362.21,
CommissionAmountAfterModify: 485.15,
ModifyReason: "sef",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 27,
ModifyTime: "/Date(1470293121610)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "34",
AdviserCodeAfterModify: "50",
CommissionAmountBeforeModify: 23,
CommissionAmountAfterModify: 362.21,
ModifyReason: "afegg",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 24,
ModifyTime: "/Date(1470281170900)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "233",
AdviserCodeAfterModify: "34",
CommissionAmountBeforeModify: 32542,
CommissionAmountAfterModify: 23,
ModifyReason: "5vaeef",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 23,
ModifyTime: "/Date(1470280873237)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "3000",
AdviserCodeAfterModify: "233",
CommissionAmountBeforeModify: 512.512,
CommissionAmountAfterModify: 32542,
ModifyReason: "ve",
ExtendAdviserNameBeforeModify: "陈汉江",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 22,
ModifyTime: "/Date(1470277903100)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "1525",
AdviserCodeAfterModify: "3000",
CommissionAmountBeforeModify: 52.01,
CommissionAmountAfterModify: 512.512,
ModifyReason: "test",
ExtendAdviserNameBeforeModify: "王琦",
ExtendAdviserNameAfterModify: "陈汉江"
},
{
Pk_Id: 21,
ModifyTime: "/Date(1470217493753)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "7425",
AdviserCodeAfterModify: "1525",
CommissionAmountBeforeModify: 52.01,
CommissionAmountAfterModify: 52.01,
ModifyReason: " 调整后提成金额:",
ExtendAdviserNameBeforeModify: "王军",
ExtendAdviserNameAfterModify: "王琦"
},
{
Pk_Id: 20,
ModifyTime: "/Date(1470216507727)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "7412",
AdviserCodeAfterModify: "7425",
CommissionAmountBeforeModify: 4958345628344,
CommissionAmountAfterModify: 52.01,
ModifyReason: " 调整后提成金额:",
ExtendAdviserNameBeforeModify: "张玥",
ExtendAdviserNameAfterModify: "王军"
},
{
Pk_Id: 19,
ModifyTime: "/Date(1470216404457)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "1",
AdviserCodeAfterModify: "7412",
CommissionAmountBeforeModify: 2,
CommissionAmountAfterModify: 4958345628344,
ModifyReason: "4958345628344",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: "张玥"
},
{
Pk_Id: 15,
ModifyTime: "/Date(1470215642833)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "AFTER",
AdviserCodeAfterModify: "1",
CommissionAmountBeforeModify: 29304.12,
CommissionAmountAfterModify: 2,
ModifyReason: "ddd",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 14,
ModifyTime: "/Date(1470215634243)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "AFTER",
AdviserCodeAfterModify: "1",
CommissionAmountBeforeModify: 29304.12,
CommissionAmountAfterModify: 2,
ModifyReason: "ddd",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 13,
ModifyTime: "/Date(1470215625697)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "AFTER",
AdviserCodeAfterModify: "1",
CommissionAmountBeforeModify: 29304.12,
CommissionAmountAfterModify: 2,
ModifyReason: "ddd",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 10,
ModifyTime: "/Date(1470215368410)/",
ModifierCode: "1468",
ModifierName: "罗松雄",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "AFTER",
AdviserCodeAfterModify: "1",
CommissionAmountBeforeModify: 29304.12,
CommissionAmountAfterModify: 2,
ModifyReason: "ddd",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
},
{
Pk_Id: 6,
ModifyTime: "/Date(1470214033153)/",
ModifierCode: "fj023rf",
ModifierName: "ABC",
ContractNum: "TS-JXS-201511-05005",
PaymentBillNum: "SK201511180076",
PaymentId: "Identity4",
AdviserCodeBeforeModify: "BEFORE",
AdviserCodeAfterModify: "AFTER",
CommissionAmountBeforeModify: 9904.21,
CommissionAmountAfterModify: 29304.12,
ModifyReason: "Hello",
ExtendAdviserNameBeforeModify: "",
ExtendAdviserNameAfterModify: ""
}
];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment