我想找出JavaScript对象中是否存在数组。
虚拟示例:
给出一个包含数组的Javascript对象。而且我们不知道对象中是否存在数组。
var dummyObject = {
backgroundcolor: '#000',
color: '#fff',
arr: ['1','2','3','4','5','6']
};
现在,我要检查此对象中是否有一个数组,以及是否打印了该数组的所有元素。
目前,我使用一种解决方案,即使用Array.isArray(key)迭代每个键并检查每个键中是否有数组。
任何帮助都会很棒。
答案 0 :(得分:2)
使用Array.isArray
是解决此问题的正确方法。遍历每个键也非常简单。然后,找到项目后,只需将其记录到控制台即可:
var dummyObject = {
backgroundcolor: '#000',
color: '#fff',
arr: ['1', '2', '3', '4', '5', '6']
};
const arr = Object.entries(dummyObject).find(([, v]) => Array.isArray(v));
if (arr) console.log(arr[1]);
.as-console-wrapper { max-height: 100% !important; top: auto; }
如果只希望布尔值确定对象内部是否存在数组,则可以将some
与Object.values
一起使用:
var dummyObject = {
backgroundcolor: '#000',
color: '#fff',
arr: ['1', '2', '3', '4', '5', '6']
};
const arrInObj = Object.values(dummyObject).some(e => Array.isArray(e));
console.log(arrInObj);
如果需要,可以避免使用Array.isArray
并检查map
属性是否存在(à la code golf):
var dummyObject = {
backgroundcolor: '#000',
color: '#fff',
arr: ['1', '2', '3', '4', '5', '6']
};
const arrInObj = Object.values(dummyObject).some(({ map }) => map);
console.log(arrInObj);
答案 1 :(得分:0)
.d-flex {
display: flex;
}
.flex-row {
flex-direction: row;
}
.align-items-start {
align-items: flex-start;
}
.align-items-center {
align-items: center;
}
.justify-content-center {
justify-content: center;
}
.container-block {
width: 100px;
height: 100px;
background: black;
margin: 0 5px;
}
.m-2 {
margin: 0.5rem;
}