我以下列形式获取对象数据。
data : Object {ELEMENTID: "ELE1", ELEMENTNAME: "EME1", ELE: "Yes"}
Object {ELEMENTID: "ELE1", ELEMENTNAME: "EME1", ELE: "Yes"}
Object {ELEMENTID: "ELE2", ELEMENTNAME: "EME1", ELE: "Yes"}
Object {ELEMENTID: "ELE3", ELEMENTNAME: "EME1", ELE: "Yes"}
Object {ELEMENTID: "ELE1", ELEMENTNAME: "EME1", ELE: "Yes"}
Object {ELEMENTID: "ELE3", ELEMENTNAME: "EME1", ELE: "Yes"}
Object {ELEMENTID: "ELE3", ELEMENTNAME: "EME1", ELE: "Yes"}
Object {ELEMENTID: "ELE2", ELEMENTNAME: "EME1", ELE: "Yes"}
现在我想将我的数据更改为以下形式。
data : object {ELEMENTID: "ELE1: ELEMENTNAME: 3, ELE : "Yes"}
object {ELEMENTID: "ELE2: ELEMENTNAME: 2, ELE : "Yes"}
object {ELEMENTID: "ELE3: ELEMENTNAME: 3, ELE : "Yes"}
我正在使用STU的唯一计数并放入SUB和STU中仅放置唯一值。我能够获取STU的唯一计数但是如何在SUB
中放置属性任何人都可以帮我解决问题。
答案 0 :(得分:1)
答案 1 :(得分:1)
如果您需要修改/更改输入数组 - 请考虑使用Array.sort
和Array.splice
函数的以下方法:
var arr = [{"STU":"Study1","SUB":"Subject1","EXL":"Yes"},{"STU":"Study1","SUB":"Subject1","EXL":"Yes"},{"STU":"Study2","SUB":"Subject1","EXL":"Yes"},{"STU":"Study3","SUB":"Subject1","EXL":"Yes"},{"STU":"Study1","SUB":"Subject1","EXL":"Yes"},{"STU":"Study3","SUB":"Subject1","EXL":"Yes"},{"STU":"Study3","SUB":"Subject1","EXL":"Yes"},{"STU":"Study2","SUB":"Subject1","EXL":"Yes"}];
arr.sort((a,b) => a.STU.localeCompare(b.STU));
for (var i = 0; i < arr.length; i++) {
if (i === 0 || arr[i].STU !== arr[i-1].STU) {
arr[i].SUB = 1;
} else {
arr[i-1].SUB++;
arr.splice(i, 1);
--i;
}
}
console.log(JSON.stringify(arr, 0, 4));
输出:
[
{
"STU": "Study1",
"SUB": 3,
"EXL": "Yes"
},
{
"STU": "Study2",
"SUB": 2,
"EXL": "Yes"
},
{
"STU": "Study3",
"SUB": 3,
"EXL": "Yes"
}
]