是否可以检查我的object
是否包含array
?例如:
let object1 = {
name:'abc',
items:[
{item_name:'123'},
{item_name:'456'}
]
}
想象一下object1
来自服务器,我不确定它是否会(或者甚至不会有)数组。有适当的方法来做到这一点吗?
答案 0 :(得分:3)
您可以使用Array.prototype.some
和Object.values()
进行迭代并确定是否有任何值是数组。
let object1 = {
name:'abc',
items:[{item_name:'123'},{item_name:'456'}]
}
let res = Object.values(object1).some((val) => Array.isArray(val));
console.log(res);
答案 1 :(得分:2)
您可以使用Object.keys()
Object.keys()
方法返回给定对象自己的属性名称的数组,其顺序与我们在普通循环中获得的顺序相同。
some()
方法测试数组中的至少一个元素是否通过了由提供的函数实现的测试。
Array.isArray()
方法确定所传递的值是否为数组。
@echo off
set "cap_files=*.cap"
set "cap_folder="D:\testfolder\"
Cd /d "%cap_folder%"
set "tshark_cmd="c:\Program Files\Wireshark\tshark"
set "tshark_options=-n -T fields -e frame.number -e frame.time -e ip.src -e ip.dst -e ip.proto -e frame.len -E header=y -E separator=, -E quote=d -E occurrence=f "
for /d %cap_folder% %%f in (%cap_files%) do(
echo Processing File: %%f %tshark_cmd% -r %%f %tshark_options% >>%%~nf.csv)
答案 2 :(得分:1)
您可以使用 Some 和Array.isArray
let object1 = {name:'abc',items:[{item_name:'123'},{item_name:'456'}]}
let op = Object.values(object1).some(e=>Array.isArray(e))
console.log(op)
答案 3 :(得分:1)
使用isArray()
。它告诉一个对象是否是数组。 Refer
let object1 = {
name:'abc',
items:[
{item_name:'123'},
{item_name:'456'}
]
}
Object.values(object1).forEach((e)=>{
if(Array.isArray(e))
{
console.log('true')
}})
答案 4 :(得分:0)
在find
上使用isArray
和Object.values
,然后将length
转换为Boolean
:
let object1 = {
name:'abc',
items:[
{item_name:'123'},
{item_name:'456'}
]
}
console.log(Boolean(Object.values(object1).find(e => Array.isArray(e)).length));