개체가있는 배열을 만들려고합니다. 실제로 개체를 배열로 푸시해야하지만 몇 가지 조건이 있기 전에
내가 가진 배열을 먼저 제거하려면 .I 필요 특성이 모든 객체 (A 객체의 배열) "숨겨진"을 : 사실, .I은 다음과 같이 그렇게 할 수 있어요
나는 또 다른 b (b는 객체의 배열입니다) .in 매개 변수 fieldNameOrPath 를 사용하여 값을 수집해야합니다 . 숨겨진 첫 번째 배열에서 삭제 된 값 : true 두 번째 배열에서 고려할 필요가 없습니다. fieldNameOrPath. 또는 fieldNameOrPath를 사용하여 첫 번째 배열에서 삭제 된 항목을 삭제할 수도 있습니다.
값을 가져 오려고하면 예상되는 결과를 얻으려고 시도합니다.
var deletedfieldNameOrPath=[ ];
for (var i = 0; i < a.length; i++) {
if (a[i].hidden) {
deletedfieldNameOrPath.push(a[i].fieldNameOrPath)
delete a[i]
}
}
console.log(a);
console.log(deletedfieldNameOrPath);
var objectarray = []
for (var i = 0; i < b.length; i++) {
for (var k = 0; k < b[i].columns.length; k++) {
var obj = {};
if (deletedfieldNameOrPath.indexOf(b[i].columns.fieldNameOrPath) == -1) {
obj.b[i].columns.fieldNameOrPath = b[i].columns.value;
}
objectarray.push(obj)
}
}
예상 어레이
[{
Type__c: "pqr",
akritiv__So_Number__c: "a"
}, {
Type__c: "Invoice",
akritiv__So_Number__c: "-"
}, {
Type__c: "inc",
akritiv__So_Number__c: "c"
}, ]
여기 바이올린입니다 http://jsfiddle.net/93m4wbh1/
당신은 내가 생각하는 것에 아주 가깝습니다.
몇 가지 사소한 변경을했습니다.
var a = [{
"hidden": true,
"fieldNameOrPath": "Name",
}, {
"hidden": true,
"fieldNameOrPath": "akritiv__Account__r.Name",
}, {
"hidden": false,
"fieldNameOrPath": "Type__c",
}, {
"hidden": false,
"fieldNameOrPath": "akritiv__So_Number__c",
}];
var deletedfieldNameOrPath = [];
var collectNameOrPath = [];
for (var i = 0; i < a.length; i) {
if (a[i].hidden) {
deletedfieldNameOrPath.push(a[i].fieldNameOrPath)
a.splice(i, 1);
continue;
} else {
collectNameOrPath.push(a[i].fieldNameOrPath);
}
i ++;
}
console.log(a);
console.log(deletedfieldNameOrPath);
[{
Type__c: "pqr",
akritiv__So_Number__c: "a"
}, {
Type__c: "Invoice",
akritiv__So_Number__c: "-"
}, {
Type__c: "inc",
akritiv__So_Number__c: "c"
},
]
var b = [{
"columns": [{
"value": "a0RK0000002l3AB",
"fieldNameOrPath": "Name"
}, {
"value": "Sun Life Financial",
"fieldNameOrPath": "akritiv__Account__r.Name"
}, {
"value": "pqr",
"fieldNameOrPath": "Type__c"
}, {
"value": "a",
"fieldNameOrPath": "akritiv__So_Number__c"
}]
}, {
"columns": [{
"value": "a0RK0000002l3ac",
"fieldNameOrPath": "Name"
}, {
"value": "Scottish Power",
"fieldNameOrPath": "akritiv__Account__r.Name"
}, {
"value": "Invoice",
"fieldNameOrPath": "Type__c"
}, {
"value": "-",
"fieldNameOrPath": "akritiv__So_Number__c"
}]
}, {
"columns": [{
"value": "a0RK0000002l3aC",
"fieldNameOrPath": "Name"
}, {
"value": "FirstEnergy",
"fieldNameOrPath": "akritiv__Account__r.Name"
}, {
"value": "inc",
"fieldNameOrPath": "Type__c"
}, {
"value": "c",
"fieldNameOrPath": "akritiv__So_Number__c"
}]
}]
var objectarray = []
for (var i = 0; i < b.length; i++) {
var obj = {};
for (var k = 0; k < b[i].columns.length; k++) {
if (deletedfieldNameOrPath.indexOf(b[i].columns[k].fieldNameOrPath) == -1) {
obj[b[i].columns[k].fieldNameOrPath] = b[i].columns[k].value;
}
}
objectarray.push(obj)
}
console.log(objectarray);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다