Как я могу добавить дополнительный ключ и значение для каждого объекта в этом огромном списке объектов - PullRequest
1 голос
/ 13 марта 2019

У меня следующая проблема, мне нужно добавить новую пару ключ и значение для каждого объекта в этом списке,

module.exports = [
{"A": "P17060024503", "B": "6/14/2017 21:54", "C": "4", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1151", "J": "O", "K": "521", "L": "2", "M": "32.7054489", "N": "-117.1518696"},
{ "A": "P17030051227", "B": "3/29/2017 22:24", "C": "4", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1016", "J": "A", "K": "521", "L": "2", "M": "32.7054544", "N": "-117.1467137"},
{ "A": "P17060004814", "B": "6/3/2017 18:04", "C": "7", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1016", "J": "A", "K": "521", "L": "2", "M": "32.7053961", "N": "-117.1444185"},
{ "A": "P17030029336", "B": "3/17/2017 10:57", "C": "6", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1151", "J": "OT", "K": "521", "L": "2", "M": "32.7054244", "N": "-117.1425917"},
{ "A": "P17030005412", "B": "3/3/2017 23:45", "C": "6", "D": "10", "E": "", "F": "15TH", "G": "ST", "H": "10 15TH ST, San Diego, CA", "I": "911P", "J": "CAN", "K": "521", "L": "2", "M": "32.7055067", "N": "-117.1405936"},
{ "A": "P17020016091", "B": "2/10/2017 8:23", "C": "6", "D": "10", "E": "", "F": "15TH", "G": "ST", "H": "10 15TH ST, San Diego, CA", "I": "AU2", "J": "W", "K": "521", "L": "2", "M": "32.7055067", "N": "-117.1405936"},
{ "A": "P17040017368", "B": "4/11/2017 4:57", "C": "3", "D": "10", "E": "", "F": "15TH", "G": "ST", "H": "10 15TH ST, San Diego, CA", "I": "5150", "J": "CAN", "K": "521", "L": "2", "M": "32.7055067", "N": "-117.1405936"},
{ "A": "P17030048050", "B": "3/28/2017 6:30", "C": "3", "D": "10", "E": "", "F": "15TH", "G": "ST", "H": "10 15TH ST, San Diego, CA", "I": "1146", "J": "K", "K": "521", "L": "", "M": "32.711212", "N": "-117.1336713"},
{ "A": "P17060037341", "B": "6/22/2017 10:19", "C": "5", "D": "10", "E": "", "F": "15TH", "G": "ST", "H": "10 15TH ST, San Diego, CA", "I": "242", "J": "K", "K": "521", "L": "1", "M": "32.7058661", "N": "-117.132085"},
{ "A": "P17060008467", "B": "6/5/2017 19:27", "C": "2", "D": "10", "E": "", "F": "15TH", "G": "ST", "H": "10 15TH ST, San Diego, CA", "I": "5150", "J": "K", "K": "521", "L": "2", "M": "32.7093133", "N": "-117.12756"},

Я хочу добавить "O": O - мой ключ к каждому объекту сверху, а мое значение - любое из этого списка ARRIVE ON SCENE PRISONER IN CUSTODY PTU (PRISONER TRANSPORT) SHOPLIFTER/QUICK CITE BORDERPRISONERTRANSPORT RETURN TO STATION PHONE YOUR STATION PHONE YOUR HOME SECURE, END OF SHIFT AUTO THEFT EVAL-POSS UNREPORTED CAR THEFT CAR THEFT REPORT CAR THEFT RECOVERY REPORT TAMPERING W/VEH IN PROGRESS VEHICLE ALARM/AUDIBLE VEHICLE CASER TAMPERING W/VEH REPORT MEET OFFICER 10-10 DISCHARGING FIREARMS PROWLER PERSON DOWN REPORT OF CRIME OCCD MEXICO CHECK THE AREA BALL GAME IN STREET(83 03MC) INCOMPLETE PHONE CALL CALLING FOR HELP CALLING FOR HELP-PANIC ALARM AMBULANCE CALL, OVERDOSE

идеально выглядит вот так

 "O" : "PRISONER IN CUSTODY"},
... "O": "Shoplifter/Quick Cite"},
.... "O": "Return TO Station"}, etc

Ответы [ 6 ]

1 голос
/ 13 марта 2019

Вы можете сохранить свой новый список в массиве

oValues=[
'ARRIVE ON SCENE',
'PRISONER IN CUSTODY',
'PTU (PRISONER TRANSPORT)'
.
.
.]

, а затем присвоить значения oValues ​​основному списку, как показано ниже

module.exports.forEach((item,index)=>{item['O']=oValues[index]})

Предполагая, что вам нужно присвоить значение 'O'sequentilay

0 голосов
/ 13 марта 2019

Разбейте решение на список из ассоциативных массивов или словарей:

let list = [{},{},{} ... ]

Доступ к n-му элементу этого массива: list [n] Таким образом, если вы хотите добавить новую пару ключ / значение по индексу n:

list[n]['key'] = value


let text = ['PRISONER IN CUSTODY', 'PTU (PRISONER TRANSPORT)' ... ]
for(t in text) {
   let key = 'O'
   let value = text[t]
   list[t][key] = value
}
0 голосов
/ 13 марта 2019

Вы можете использовать цикл .forEach, чтобы добавить атрибут O к каждому из ваших объектов в экспорте.Это будет линейным (O (N)), поскольку вы перебираете свои объекты только один раз.

const crimes = ["ARRIVE ON SCENE", "PRISONER IN CUSTODY", "PTU (PRISONER TRANSPORT)", "SHOPLIFTER/QUICK CITE", "BORDERPRISONERTRANSPORT", "RETURN TO STATION", "PHONE YOUR STATION", "PHONE YOUR HOME", "SECURE, END OF SHIFT", "AUTO THEFT", "EVAL-POSS UNREPORTED CAR THEFT", "CAR THEFT REPORT", "CAR THEFT RECOVERY REPORT", "TAMPERING W/VEH IN PROGRESS", "VEHICLE ALARM/AUDIBLE", "VEHICLE CASER", "TAMPERING W/VEH REPORT", "MEET OFFICER 10-10", "DISCHARGING FIREARMS", "PROWLER", "PERSON DOWN", "REPORT OF CRIME OCCD MEXICO", "CHECK THE AREA", "BALL GAME IN STREET(83 03MC)", "INCOMPLETE PHONE CALL", "CALLING FOR HELP", "CALLING FOR HELP-PANIC ALARM", "AMBULANCE CALL, OVERDOSE"];
const exports = [{A:"P17060024503",B:"6/14/2017 21:54",C:"4",D:"10",E:"",F:"14TH",G:"ST",H:"10 14TH ST, San Diego, CA",I:"1151",J:"O",K:"521",L:"2",M:"32.7054489",N:"-117.1518696"},{A:"P17030051227",B:"3/29/2017 22:24",C:"4",D:"10",E:"",F:"14TH",G:"ST",H:"10 14TH ST, San Diego, CA",I:"1016",J:"A",K:"521",L:"2",M:"32.7054544",N:"-117.1467137"},{A:"P17060004814",B:"6/3/2017 18:04",C:"7",D:"10",E:"",F:"14TH",G:"ST",H:"10 14TH ST, San Diego, CA",I:"1016",J:"A",K:"521",L:"2",M:"32.7053961",N:"-117.1444185"},{A:"P17030029336",B:"3/17/2017 10:57",C:"6",D:"10",E:"",F:"14TH",G:"ST",H:"10 14TH ST, San Diego, CA",I:"1151",J:"OT",K:"521",L:"2",M:"32.7054244",N:"-117.1425917"},{A:"P17030005412",B:"3/3/2017 23:45",C:"6",D:"10",E:"",F:"15TH",G:"ST",H:"10 15TH ST, San Diego, CA",I:"911P",J:"CAN",K:"521",L:"2",M:"32.7055067",N:"-117.1405936"},{A:"P17020016091",B:"2/10/2017 8:23",C:"6",D:"10",E:"",F:"15TH",G:"ST",H:"10 15TH ST, San Diego, CA",I:"AU2",J:"W",K:"521",L:"2",M:"32.7055067",N:"-117.1405936"},{A:"P17040017368",B:"4/11/2017 4:57",C:"3",D:"10",E:"",F:"15TH",G:"ST",H:"10 15TH ST, San Diego, CA",I:"5150",J:"CAN",K:"521",L:"2",M:"32.7055067",N:"-117.1405936"},{A:"P17030048050",B:"3/28/2017 6:30",C:"3",D:"10",E:"",F:"15TH",G:"ST",H:"10 15TH ST, San Diego, CA",I:"1146",J:"K",K:"521",L:"",M:"32.711212",N:"-117.1336713"},{A:"P17060037341",B:"6/22/2017 10:19",C:"5",D:"10",E:"",F:"15TH",G:"ST",H:"10 15TH ST, San Diego, CA",I:"242",J:"K",K:"521",L:"1",M:"32.7058661",N:"-117.132085"},{A:"P17060008467",B:"6/5/2017 19:27",C:"2",D:"10",E:"",F:"15TH",G:"ST",H:"10 15TH ST, San Diego, CA",I:"5150",J:"K",K:"521",L:"2",M:"32.7093133",N:"-117.12756"}];

exports.forEach(obj => {
  const randomIndex = Math.floor(Math.random() * crimes.length);
  obj["O"] = crimes[randomIndex];
});

console.log(exports);
.as-console-wrapper {max-height: 100% !important; top: 0;} /* ignore css */
0 голосов
/ 13 марта 2019

Сделай это. В чем проблема, правда?

var arr = [/*your array*/];
function getRandomO() {/*returns your random O*/}
arr.forEach(v=>v.O = getRandomO());
module.exports = arr;

Если вы используете JSON, выполните JSON.stringify(arr) в консоли и скопируйте результат.

0 голосов
/ 13 марта 2019

Поскольку вы хотите добавить любой элемент из списка, просто map это выглядит так:

const data = [{
  "A": "P17060024503",
  "B": "6/14/2017 21:54",
  "C": "4",
  "D": "10",
  "E": "",
  "F": "14TH",
  "G": "ST",
  "H": "10 14TH ST, San Diego, CA",
  "I": "1151",
  "J": "O",
  "K": "521",
  "L": "2",
  "M": "32.7054489",
  "N": "-117.1518696"
}, {
  "A": "P17030051227",
  "B": "3/29/2017 22:24",
  "C": "4",
  "D": "10",
  "E": "",
  "F": "14TH",
  "G": "ST",
  "H": "10 14TH ST, San Diego, CA",
  "I": "1016",
  "J": "A",
  "K": "521",
  "L": "2",
  "M": "32.7054544",
  "N": "-117.1467137"
}, {
  "A": "P17060004814",
  "B": "6/3/2017 18:04",
  "C": "7",
  "D": "10",
  "E": "",
  "F": "14TH",
  "G": "ST",
  "H": "10 14TH ST, San Diego, CA",
  "I": "1016",
  "J": "A",
  "K": "521",
  "L": "2",
  "M": "32.7053961",
  "N": "-117.1444185"
}, {
  "A": "P17030029336",
  "B": "3/17/2017 10:57",
  "C": "6",
  "D": "10",
  "E": "",
  "F": "14TH",
  "G": "ST",
  "H": "10 14TH ST, San Diego, CA",
  "I": "1151",
  "J": "OT",
  "K": "521",
  "L": "2",
  "M": "32.7054244",
  "N": "-117.1425917"
}, {
  "A": "P17030005412",
  "B": "3/3/2017 23:45",
  "C": "6",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "911P",
  "J": "CAN",
  "K": "521",
  "L": "2",
  "M": "32.7055067",
  "N": "-117.1405936"
}, {
  "A": "P17020016091",
  "B": "2/10/2017 8:23",
  "C": "6",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "AU2",
  "J": "W",
  "K": "521",
  "L": "2",
  "M": "32.7055067",
  "N": "-117.1405936"
}, {
  "A": "P17040017368",
  "B": "4/11/2017 4:57",
  "C": "3",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "5150",
  "J": "CAN",
  "K": "521",
  "L": "2",
  "M": "32.7055067",
  "N": "-117.1405936"
}, {
  "A": "P17030048050",
  "B": "3/28/2017 6:30",
  "C": "3",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "1146",
  "J": "K",
  "K": "521",
  "L": "",
  "M": "32.711212",
  "N": "-117.1336713"
}, {
  "A": "P17060037341",
  "B": "6/22/2017 10:19",
  "C": "5",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "242",
  "J": "K",
  "K": "521",
  "L": "1",
  "M": "32.7058661",
  "N": "-117.132085"
}, {
  "A": "P17060008467",
  "B": "6/5/2017 19:27",
  "C": "2",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "5150",
  "J": "K",
  "K": "521",
  "L": "2",
  "M": "32.7093133",
  "N": "-117.12756"
}];

const newItems = [
  "ARRIVE ON SCENE",
  "PRISONER IN CUSTODY",
  "PTU (PRISONER TRANSPORT)",
  "SHOPLIFTER/QUICK CITE",
  "BORDERPRISONERTRANSPORT",
  "RETURN TO STATION",
  "PHONE YOUR STATION",
  "PHONE YOUR HOME",
  "SECURE, END OF SHIFT",
  "AUTO THEFT",
  "EVAL-POSS UNREPORTED CAR THEFT",
  "CAR THEFT REPORT",
  "CAR THEFT RECOVERY REPORT",
  "TAMPERING W/VEH IN PROGRESS",
  "VEHICLE ALARM/AUDIBLE",
  "VEHICLE CASER",
  "TAMPERING W/VEH REPORT",
  "MEET OFFICER 10-10",
  "DISCHARGING FIREARMS",
  "PROWLER",
  "PERSON DOWN",
  "REPORT OF CRIME OCCD MEXICO",
  "CHECK THE AREA",
  "BALL GAME IN STREET(83 03MC)",
  "INCOMPLETE PHONE CALL",
  "CALLING FOR HELP",
  "CALLING FOR HELP-PANIC ALARM",
  "AMBULANCE CALL, OVERDOSE"
];

const output = data.map(o => ({ ...o,
  O: newItems[Math.floor(Math.random() * newItems.length)]
}));

console.log(output);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Синтаксис ES5:

var data = [{
  "A": "P17060024503",
  "B": "6/14/2017 21:54",
  "C": "4",
  "D": "10",
  "E": "",
  "F": "14TH",
  "G": "ST",
  "H": "10 14TH ST, San Diego, CA",
  "I": "1151",
  "J": "O",
  "K": "521",
  "L": "2",
  "M": "32.7054489",
  "N": "-117.1518696"
}, {
  "A": "P17030051227",
  "B": "3/29/2017 22:24",
  "C": "4",
  "D": "10",
  "E": "",
  "F": "14TH",
  "G": "ST",
  "H": "10 14TH ST, San Diego, CA",
  "I": "1016",
  "J": "A",
  "K": "521",
  "L": "2",
  "M": "32.7054544",
  "N": "-117.1467137"
}, {
  "A": "P17060004814",
  "B": "6/3/2017 18:04",
  "C": "7",
  "D": "10",
  "E": "",
  "F": "14TH",
  "G": "ST",
  "H": "10 14TH ST, San Diego, CA",
  "I": "1016",
  "J": "A",
  "K": "521",
  "L": "2",
  "M": "32.7053961",
  "N": "-117.1444185"
}, {
  "A": "P17030029336",
  "B": "3/17/2017 10:57",
  "C": "6",
  "D": "10",
  "E": "",
  "F": "14TH",
  "G": "ST",
  "H": "10 14TH ST, San Diego, CA",
  "I": "1151",
  "J": "OT",
  "K": "521",
  "L": "2",
  "M": "32.7054244",
  "N": "-117.1425917"
}, {
  "A": "P17030005412",
  "B": "3/3/2017 23:45",
  "C": "6",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "911P",
  "J": "CAN",
  "K": "521",
  "L": "2",
  "M": "32.7055067",
  "N": "-117.1405936"
}, {
  "A": "P17020016091",
  "B": "2/10/2017 8:23",
  "C": "6",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "AU2",
  "J": "W",
  "K": "521",
  "L": "2",
  "M": "32.7055067",
  "N": "-117.1405936"
}, {
  "A": "P17040017368",
  "B": "4/11/2017 4:57",
  "C": "3",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "5150",
  "J": "CAN",
  "K": "521",
  "L": "2",
  "M": "32.7055067",
  "N": "-117.1405936"
}, {
  "A": "P17030048050",
  "B": "3/28/2017 6:30",
  "C": "3",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "1146",
  "J": "K",
  "K": "521",
  "L": "",
  "M": "32.711212",
  "N": "-117.1336713"
}, {
  "A": "P17060037341",
  "B": "6/22/2017 10:19",
  "C": "5",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "242",
  "J": "K",
  "K": "521",
  "L": "1",
  "M": "32.7058661",
  "N": "-117.132085"
}, {
  "A": "P17060008467",
  "B": "6/5/2017 19:27",
  "C": "2",
  "D": "10",
  "E": "",
  "F": "15TH",
  "G": "ST",
  "H": "10 15TH ST, San Diego, CA",
  "I": "5150",
  "J": "K",
  "K": "521",
  "L": "2",
  "M": "32.7093133",
  "N": "-117.12756"
}];

var newItems = [
  "ARRIVE ON SCENE",
  "PRISONER IN CUSTODY",
  "PTU (PRISONER TRANSPORT)",
  "SHOPLIFTER/QUICK CITE",
  "BORDERPRISONERTRANSPORT",
  "RETURN TO STATION",
  "PHONE YOUR STATION",
  "PHONE YOUR HOME",
  "SECURE, END OF SHIFT",
  "AUTO THEFT",
  "EVAL-POSS UNREPORTED CAR THEFT",
  "CAR THEFT REPORT",
  "CAR THEFT RECOVERY REPORT",
  "TAMPERING W/VEH IN PROGRESS",
  "VEHICLE ALARM/AUDIBLE",
  "VEHICLE CASER",
  "TAMPERING W/VEH REPORT",
  "MEET OFFICER 10-10",
  "DISCHARGING FIREARMS",
  "PROWLER",
  "PERSON DOWN",
  "REPORT OF CRIME OCCD MEXICO",
  "CHECK THE AREA",
  "BALL GAME IN STREET(83 03MC)",
  "INCOMPLETE PHONE CALL",
  "CALLING FOR HELP",
  "CALLING FOR HELP-PANIC ALARM",
  "AMBULANCE CALL, OVERDOSE"
];

var output = data.map(function(o) { 
  o.O = newItems[Math.floor(Math.random() * newItems.length)];
  return o;
});

console.log(output);
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 13 марта 2019

Попробуйте с Array#map и Array#forEach.

  • У меня нет t know the structure of your second array.So created with array object.Then map the o` значения в массиве.
  • Затем примените forEach к первому массиву. Наконец добавьте значение на основе индекса

var arr =[
{"A": "P17060024503", "B": "6/14/2017 21:54", "C": "4", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1151", "J": "O", "K": "521", "L": "2", "M": "32.7054489", "N": "-117.1518696"},
{ "A": "P17030051227", "B": "3/29/2017 22:24", "C": "4", "D": "10", "E": "", "F": "14TH", "G": "ST", "H": "10 14TH ST, San Diego, CA", "I": "1016", "J": "A", "K": "521", "L": "2", "M": "32.7054544", "N": "-117.1467137"}
];

var arr2 = [{'ss':'sss','o':'something1'},{'hh':'dd','o':'something2'}]

arr2_filter_o = arr2.map(a=> a.o);
 //its like ['something1','something2']
 
arr.forEach((a,b)=> {
  a['o']=arr2_filter_o[b];
})

console.log(arr)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...