如何迭代索引对象数组
How to iterate an array of indexed objects
我有一个索引对象数组,我想遍历它以将其转换为新的平面数组。
这是对象数组:
"attentionSchedules": [
{
"room": "1",
"schedules": [
{
"days": [
"SA",
"WE"
],
"_id": "6271xxxx",
"initialTimeStr": "12:00 am",
"finalTimeStr": "12:00 am",
"initialTime": "2022-05-03T06:00:00.000Z",
"finalTime": "2022-05-03T06:00:00.000Z"
}
],
"place": {
"loc": {
"type": "Point",
"coordinates": [
-88.03xxx,
15.49xxx
]
},
"_idPlace": "5d5ba845xxx",
"name": "Labs",
"address": "xxx"
},
"floor": 1
},
{
"room": "23",
"floor": 1,
"schedules": [
{
"days": [
"MO",
"TH",
"WE",
"YOU",
"FR",
"SA"
],
"_id": "62754264a627af5fc44286b3",
"initialTimeStr": "08:00 am",
"finalTimeStr": "09:00 pm",
"initialTime": "2022-05-06T14:00:00.000Z",
"finalTime": "2022-05-07T03:00:00.000Z"
}
],
"place": {
"loc": {
"type": "Point",
"coordinates": [
-88.02xxx,
15.50xxx
]
},
"_idPlace": "ba",
"name": "Labs",
"address": "xx"
}
}
],
我想遍历它,获取它的值并将它转换成一个新的对象,像这样:
{
lng: -88.02xxx
lat: 15.50xxx
_idPlace: "ba"
}
.
.
.
N
我该怎么做?我正在使用 angular,我正在使用 javascript/types 执行该方法 目前我做了这样的事情:
let locCoord: any[] = [];
this.attentionSchedules?.forEach(elm => {
for (const [key, value] of Object.entries(elm.place.loc)) {
let lng = value[0];
let lat = value[1];
let dataObjLoc = {
_id: elm.place._id,
lat: lat,
lng: lng
}
locCoord.push(dataObjLoc);
}
});
console.log(locCoord);
它 returns 以下内容:
[
{
"_idPlace": "5d5ba84531f75411f3b6417e",
"lat": "or",
"lng": "P"
},
{
"_idPlace": "5d5ba84531f75411f3b6417e",
"lat": 15.4997741,
"lng": -88.03860120000002
},
{
"_idPlace": "6109766f913cf469f6b177ba",
"lat": "or",
"lng": "P"
},
{
"_idPlace": "6109766f913cf469f6b177ba",
lat: 15.5085874,
"lng": -88.0264096
}
]
这不是我需要的,因为在使用 Object.entries 时它不仅提取值而且复制键。有人可以帮助我吗?请
我不确定您是否需要遍历 Object.entries(elm.place.loc)
(如果我理解问题的话)。我认为您可以直接提取一些值:
const attentionSchedules = [{"room":"1","schedules":[{"days":["SA","WE"],"_id":"6271xxxx","initialTimeStr":"12:00 am","finalTimeStr":"12:00 am","initialTime":"2022-05-03T06:00:00.000Z","finalTime":"2022-05-03T06:00:00.000Z"}],"place":{"loc":{"type":"Point","coordinates":[-88.03,15.49]},"_idPlace":"5d5ba845xxx","name":"Labs","address":"xxx"},"floor":1},{"room":"23","floor":1,"schedules":[{"days":["MO","TH","WE","YOU","FR","SA"],"_id":"62754264a627af5fc44286b3","initialTimeStr":"08:00 am","finalTimeStr":"09:00 pm","initialTime":"2022-05-06T14:00:00.000Z","finalTime":"2022-05-07T03:00:00.000Z"}],"place":{"loc":{"type":"Point","coordinates":[-88.02,15.5]},"_idPlace":"ba","name":"Labs","address":"xx"}}];
let locCoord = [];
attentionSchedules?.forEach(({ place }) => {
const [lng, lat] = place.loc.coordinates;
locCoord.push({
_id: place._idPlace,
lat: lat,
lng: lng
});
});
console.log(locCoord);
我有一个索引对象数组,我想遍历它以将其转换为新的平面数组。
这是对象数组:
"attentionSchedules": [
{
"room": "1",
"schedules": [
{
"days": [
"SA",
"WE"
],
"_id": "6271xxxx",
"initialTimeStr": "12:00 am",
"finalTimeStr": "12:00 am",
"initialTime": "2022-05-03T06:00:00.000Z",
"finalTime": "2022-05-03T06:00:00.000Z"
}
],
"place": {
"loc": {
"type": "Point",
"coordinates": [
-88.03xxx,
15.49xxx
]
},
"_idPlace": "5d5ba845xxx",
"name": "Labs",
"address": "xxx"
},
"floor": 1
},
{
"room": "23",
"floor": 1,
"schedules": [
{
"days": [
"MO",
"TH",
"WE",
"YOU",
"FR",
"SA"
],
"_id": "62754264a627af5fc44286b3",
"initialTimeStr": "08:00 am",
"finalTimeStr": "09:00 pm",
"initialTime": "2022-05-06T14:00:00.000Z",
"finalTime": "2022-05-07T03:00:00.000Z"
}
],
"place": {
"loc": {
"type": "Point",
"coordinates": [
-88.02xxx,
15.50xxx
]
},
"_idPlace": "ba",
"name": "Labs",
"address": "xx"
}
}
],
我想遍历它,获取它的值并将它转换成一个新的对象,像这样:
{
lng: -88.02xxx
lat: 15.50xxx
_idPlace: "ba"
}
.
.
.
N
我该怎么做?我正在使用 angular,我正在使用 javascript/types 执行该方法 目前我做了这样的事情:
let locCoord: any[] = [];
this.attentionSchedules?.forEach(elm => {
for (const [key, value] of Object.entries(elm.place.loc)) {
let lng = value[0];
let lat = value[1];
let dataObjLoc = {
_id: elm.place._id,
lat: lat,
lng: lng
}
locCoord.push(dataObjLoc);
}
});
console.log(locCoord);
它 returns 以下内容:
[
{
"_idPlace": "5d5ba84531f75411f3b6417e",
"lat": "or",
"lng": "P"
},
{
"_idPlace": "5d5ba84531f75411f3b6417e",
"lat": 15.4997741,
"lng": -88.03860120000002
},
{
"_idPlace": "6109766f913cf469f6b177ba",
"lat": "or",
"lng": "P"
},
{
"_idPlace": "6109766f913cf469f6b177ba",
lat: 15.5085874,
"lng": -88.0264096
}
]
这不是我需要的,因为在使用 Object.entries 时它不仅提取值而且复制键。有人可以帮助我吗?请
我不确定您是否需要遍历 Object.entries(elm.place.loc)
(如果我理解问题的话)。我认为您可以直接提取一些值:
const attentionSchedules = [{"room":"1","schedules":[{"days":["SA","WE"],"_id":"6271xxxx","initialTimeStr":"12:00 am","finalTimeStr":"12:00 am","initialTime":"2022-05-03T06:00:00.000Z","finalTime":"2022-05-03T06:00:00.000Z"}],"place":{"loc":{"type":"Point","coordinates":[-88.03,15.49]},"_idPlace":"5d5ba845xxx","name":"Labs","address":"xxx"},"floor":1},{"room":"23","floor":1,"schedules":[{"days":["MO","TH","WE","YOU","FR","SA"],"_id":"62754264a627af5fc44286b3","initialTimeStr":"08:00 am","finalTimeStr":"09:00 pm","initialTime":"2022-05-06T14:00:00.000Z","finalTime":"2022-05-07T03:00:00.000Z"}],"place":{"loc":{"type":"Point","coordinates":[-88.02,15.5]},"_idPlace":"ba","name":"Labs","address":"xx"}}];
let locCoord = [];
attentionSchedules?.forEach(({ place }) => {
const [lng, lat] = place.loc.coordinates;
locCoord.push({
_id: place._idPlace,
lat: lat,
lng: lng
});
});
console.log(locCoord);