Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中区分对象数组?_Javascript_Arrays_Object - Fatal编程技术网

如何在javascript中区分对象数组?

如何在javascript中区分对象数组?,javascript,arrays,object,Javascript,Arrays,Object,如何区分数组是否为简单数组 f、 e 或一组对象 f、 e 下面的数字够了吗 const isObject = (obj) => typeof obj === 'object' && obj !== null isArray(objectArr) && objectArr.every(isObject) 也许这不是一种直接的方法,但您可以尝试对阵列进行深度复制。您可以在javascript中看到,在对象等非基本值之间进行比较时,即使它们具有完全相同的属性

如何区分数组是否为简单数组

f、 e

或一组对象

f、 e

下面的数字够了吗

const isObject = (obj) => typeof obj === 'object' && obj !== null

isArray(objectArr) && objectArr.every(isObject)

也许这不是一种直接的方法,但您可以尝试对阵列进行深度复制。您可以在javascript中看到,在对象等非基本值之间进行比较时,即使它们具有完全相同的属性,也会返回false

{foo: "bar"} === {foo: "bar"} // false
const simplerr=[“嗨”,“1”,“3”,“5”,“这是一个字符串”,29999]
常量objectArr=[
{el1:“你好”,el2:“你好”},
{el1:“hi2”,el2:“hi2”},
{el1:“hi3”,el2:“hi3”},
{el1:“hi4”,el2:“hi4”},
]
函数deepCopy(数组){
返回JSON.parse(JSON.stringify(array));
}
函数isSimple(数组){
const copy=deepCopy(数组);
返回数组.every((el,index)=>el==copy[index]);
}
log(“simplear:,isSimple(simplear))
log(“objectArr:,isSimple(objectArr))
您可以这样做

const isObject=item=>typeof item==“object”
&& !数组.isArray(项目)
&&物品!==无效的
const simplerr=[“hi”,“1”,“3”,“5”,“这是一个字符串”,29999];
const数组_of_objects=[{el1:“hi”,el2:“hi”},{el1:“hi2”,el2:“hi2”},{el1:“hi3”,el2:“hi3”},{el1:“hi4”,el2:“hi4”};
console.log(simplerr.every(isObject));//假的

console.log(对象数组,每个对象(isObject));//是的,你可以这样做。只需确保同时检查
功能

让simplerr=[
“嗨”,
"1",
3.
"5",
“这是一个字符串”,
29999,
功能,
];
设objectArr=[{
el1:“你好”,
el2:“你好”,
},
{
el1:“hi2”,
el2:“hi2”,
},
{
el1:“hi3”,
el2:“hi3”,
},
{
el1:“hi4”,
el2:“hi4”,
},
];
常量isSimpleArray=arr=>
!好的(
x=>x!=null&&(typeof x==“object”| | typeof x==“function”)
);
log(isSimpleArray(SimpleArray));

log(isSimpleArray(objectArr))不要忘记“函数”:如果要检查所有成员是否都是对象-是。但是当数组包含对象和其他数据时,这将返回
false
,例如
[{},true,{}]
。这是预期的吗?
const isSimpleArray=arr=>!arr.some(x=>typeof x==='object')
@georg是的,也是这样。如果需要任何对象,则需要包含函数,因为它们也是对象。@boxdox
[null]
->
false
不要这样做。工作太多,很容易失败,因为您可能会丢失数据,从而扭曲结果。
const isObject = (obj) => typeof obj === 'object' && obj !== null

isArray(objectArr) && objectArr.every(isObject)
{foo: "bar"} === {foo: "bar"} // false