如何解决如何在Node.js中访问两个数组中的对象?
我已经向服务器发送了一些数据,并且希望能够从对象中提取数据以用于服务器。下面是数据结构的示例:
[
[
{
path: 'path/image',preview: 'blob:imagepreview'
}
]
]
我将无法使用点符号。也不会有一个括号表示法。
编辑:
像array[0][0]
这样的双括号符号对我有用。我能够像往常一样提取信息并进行访问。
解决方法
如果索引是静态的,则可以像这样轻松地访问它:
var array = [[{path: 'path/image',preview: 'blob:imagepreview'}]]
console.log(array[0][0]) // { path: 'path/image',preview: 'blob:imagepreview' }
从那里可以同时使用点和括号符号。
,因此,假设您将数据包含在名为data的变量中,则可以执行此操作以访问路径并直接预览
const [{path,preview}] = data.flat()
或者如果您想整体提取物品
const [item] = data.flat()
,
如果特定结构未知,则此递归函数将所有对象存储到结果变量中,假设没有重复键(可以调整代码以克服)。
const data = [
[{
path: 'path/image',preview: 'blob:imagepreview'
}]
]
console.log(data)
let result = {}
let getValues = (elem) => {
if (Array.isArray(elem)) {
elem.map(e => getValues(e))
} else if (elem instanceof Object) {
for (const key in elem) {
if (Array.isArray(elem[key])) {
getValues(elem)
} else {
result[key] = elem[key]
}
}
}
}
getValues(data)
console.log(result)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。