拉取数组对象值然后推送到另一个数组
Posted
技术标签:
【中文标题】拉取数组对象值然后推送到另一个数组【英文标题】:Pull array object values then push to another array 【发布时间】:2021-09-21 11:36:39 【问题描述】:嗨!我正在尝试遍历一个对象以执行一个函数,该函数将读取每个分组数组中的每个值,但我继续只有第一组。
我试图迭代并将它添加到一个数组中,但我无法获得预期的结果。
这是预期的结果,但只返回第一个分组数组。
console.log ->
"order_details": [
"order_seq": "2104150001"
,
"order_seq": "2105110005"
,
"order_seq": "2106220007"
,
"order_seq": "2105260007"
]
console.log ->
"order_details": [
"order_seq": "2105270001"
]
console.log ->
"order_details": [
"order_seq": "2104090006"
,
"order_seq": "2105060001"
]
这是我的脚本 sn-p:
var objectPayload =
"0": [
"order_seq": "2104150001"
,
"order_seq": "2105110005"
,
"order_seq": "2106220007"
,
"order_seq": "2105260007"
],
"1": [
"order_seq": "2105270001"
],
"2": [
"order_seq": "2104090006"
,
"order_seq": "2105060001"
]
;
var result = Object.keys(objectPayload).map((key) => objectPayload[key]);
for (let i = 0; i < result.length; i++)
var testList =
"order_details": []
;
setTimeout(function()
let jsonSeqNo;
result[i].map(function(value)
jsonSeqNo =
'order_seq': value.order_seq
;
);
testList.order_details.push(jsonSeqNo);
console.log(testList);
, i * 500);
【问题讨论】:
您的代码 sn-p 没有运行,并且您的代码不在 sn-p 中 嗨,欢迎来到 SO。请花时间阅读tour.map
(在 setTimeout 内)不返回值将返回 value
- 你可能想要 ...map(function(value) return result[i].map(function (value) 'order_seq': value.order_seq )
【参考方案1】:
解决方法很简单:
var objectPayload =
"0": [
"order_seq": "2104150001"
,
"order_seq": "2105110005"
,
"order_seq": "2106220007"
,
"order_seq": "2105260007"
],
"1": [
"order_seq": "2105270001"
],
"2": [
"order_seq": "2104090006"
,
"order_seq": "2105060001"
]
;
const result = Object.values(objectPayload).map((group) => (
order_details: group
));
result.forEach(entry => console.log(entry));
使用Object.values
,您将获得一组组。然后使用Array.prototype.flat
可以展平数组。
【讨论】:
嗨!感谢您的时间。我编辑了我的原始帖子以显示我试图实现的预期结果..谢谢! :) 不幸的是,您想要实现的目标并不完全清楚。您只想控制台日志吗?或者你想创建一个 order_details: []
的数组?
更新了代码,可能是你想要实现的。如果不是,请提供更准确的解释。以上是关于拉取数组对象值然后推送到另一个数组的主要内容,如果未能解决你的问题,请参考以下文章