Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

84
Views
cómo cambiar la propiedad de matriz anidada JSON "project_id" con "project_name"

Problema:

 [ { "project_id": 1, "project_name": "CDP", "role": "PL" }, { "project_id": 2, "project_name": "Admincer", "role": "PM" },

Quiero agregar la propiedad "project_id" de las tres propiedades anteriores a otra matriz usando algún método.

Mi idea es: 1. En primer lugar, si pudiera copiar la propiedad "project_id" de esta matriz en la segunda matriz JSON anidada, estaría bien.

Lo que busqué:

 const obj = { "project_id": 1, "project_name": "CDP", "role": "PL" };; const objCopy = { "start_time": "09:00:00", "end_time": "18:00:00", "rest_time": "01:00:00", "worked_time": "08:00:00", "is_wfh": true, "id": 1, 1, "work_day_id": 45, "time_cards": [ { ... obj } ] };; console.log (objCopy);

Descubrí que podía copiarlo de esta manera. Probé el código anterior en Chrome Console. Se copió la matriz, pero se copió todo el objeto. Solo quiero copiar las propiedades de project_id.

Quiero crear una nueva propiedad llamada "prj_name" en esta matriz y mostrar solo esa propiedad en Vuetify.

 async fetchWorkerTimeCard() { try { this.worker_data = [] await this.$axios.$get('/worker_time_card', { params: { work_date: this.calendarVal } }).then(data => { this.worker_data = data }) var projects = await this.fetch_worker_projects() console.log(projects) } catch (error) { console.log(error) this.worker_data = [] } },
 <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.5/vue.js"></script> <v-card> <v-data-table v-if="worker_data.time_cards" :headers="headers2" :items="worker_data.time_cards"></v-data-table> </v-card>

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Simplemente puede cambiar los datos de su objeto como cualquier otro objeto en JS.

 const obj = { "project_id": 1, "project_name": "CDP", "role": "PL" }; const objCopy = { "start_time": "09:00:00", "end_time": "18:00:00", "rest_time": "01:00:00", "worked_time": "08:00:00", "is_wfh": true, "id": 1, "work_day_id": 45 } console.log({...obj, ...objCopy})

Esto creará 1 objeto que se fusionó.

O si solo desea el valor project_id, simplemente cámbielo como:

 objCopy.project_id = obj.project_id
about 4 years ago · Juan Pablo Isaza Report

0

Si entiendo correctamente su primera pregunta, es posible que le interese la función de mapa , que le permite crear una nueva matriz a partir de una matriz existente. Entonces, por ejemplo, si el primer fragmento que publicaste es una matriz de objetos que llamamos projects , podrías usar: var projectIds = projects.map(p => p.project_id) , donde projectIds ahora sería una matriz de solo ID de proyecto .

Sin embargo, parece que podría estar preguntando más que esto, así que secundo la solicitud de Bravo de más aclaraciones/reorganización en su pregunta.

about 4 years ago · Juan Pablo Isaza Report

0

No estoy muy seguro de si desea alguno de los siguientes resultados:

 { "start_time": "09:00:00", "end_time": "18:00:00", "rest_time": "01:00:00", "worked_time": "08:00:00", "is_wfh": true, "id": [ 1, 1 ], "work_day_id": 45, "time_cards": [ { "project_id": 1 }, { "project_id": 2 } ]

}

o esto

 { "start_time": "09:00:00", "end_time": "18:00:00", "rest_time": "01:00:00", "worked_time": "08:00:00", "is_wfh": true, "id": [ 1, 1 ], "work_day_id": 45, "time_cards": [ "project_id": [1, 2] }

En caso de que necesite el primer escenario, el siguiente código puede ayudarlo:

 // This function return an array with: [{project_id: Number}] function onlyIds(obj) { const ids = []; // Iterate the obj Array obj.forEach(element => { // Push a new JSON: "{project_id: 1}" or whatever ids.push({ project_id: element.project_id }); }); // return an array that only contains the project_id return ids; } const obj = [ { project_id: 1, project_name: 'CDP', role: 'PL', }, { project_id: 2, project_name: 'Admincer', role: 'PM', }, ]; const objCopy = { start_time: '09:00:00', end_time: '18:00:00', rest_time: '01:00:00', worked_time: '08:00:00', is_wfh: true, id: [1, 1], work_day_id: 45, time_cards: onlyIds(obj), }; console.log(onlyIds(obj)); console.log(objCopy);

Estoy bastante seguro de que debería haber una forma más elegante/óptima (como usar cualquier tipo de función de orden superior que pueda faltar en este momento) pero, por lo que entendí, esto debería hacer el trabajo.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!