Javascript 检查TypeScript对象的属性是否全部为空
我有一个像这样的对象:Javascript 检查TypeScript对象的属性是否全部为空,javascript,arrays,typescript,object,ecmascript-6,Javascript,Arrays,Typescript,Object,Ecmascript 6,我有一个像这样的对象: objectProp = { property1: [], property2: [], } 我想检查这个对象的所有属性(即字符串数组)是否为null并返回true。 我因为某种原因被卡住了。我该怎么做? 我使用的是“目标”:“es2015” 我尝试过这个,但不起作用: if (!Object.keys(this.objectProp).every(array => array.length > 0)) { console.log('a
objectProp = {
property1: [],
property2: [],
}
我想检查这个对象的所有属性(即字符串数组)是否为null并返回true。
我因为某种原因被卡住了。我该怎么做?
我使用的是“目标”:“es2015”
我尝试过这个,但不起作用:
if (!Object.keys(this.objectProp).every(array => array.length > 0)) {
console.log('all are empety');
}
您需要使用
Object.values(this.objectProp)
而不是Object.keys(this.objectProp)
,这样才能工作。As方法返回给定对象自身可枚举属性名称的数组,方法返回给定对象自身可枚举属性值的数组,这实际上就是您要查找的
let objectProp={
房地产1:[],
物业2:[],
}
console.log(Object.keys(objectProp))
console.log(Object.values(objectProp))
您需要使用Object.values(this.objectProp)
而不是Object.keys(this.objectProp)
才能工作。As方法返回给定对象自身可枚举属性名称的数组,方法返回给定对象自身可枚举属性值的数组,这实际上就是您要查找的
let objectProp={
房地产1:[],
物业2:[],
}
console.log(Object.keys(objectProp))
console.log(Object.values(objectProp))
通过使用Object.keys()
您可以按如下操作
var objectProp={
房地产1:[],
物业2:[],
}
if(Object.keys(objectProp.every)(key=>objectProp[key]&&objectProp[key].length==0)){
console.log('全部为空')
}
通过使用Object.keys()
您可以按如下方式执行
var objectProp={
房地产1:[],
物业2:[],
}
if(Object.keys(objectProp.every)(key=>objectProp[key]&&objectProp[key].length==0)){
console.log('全部为空')
}
您应该使用对象。值如下所示:
if (!Object.values(this.objectProp).every(({length}) => Boolean(length))) {
console.log('all are empety');
}
您应该使用Object.values
,如下所示:
if (!Object.values(this.objectProp).every(({length}) => Boolean(length))) {
console.log('all are empety');
}
大多数答案似乎遗漏了关于你的逻辑的部分,只是有点错误。
他们会说空,如果只有一个项目是空的,。
这是因为逻辑是!每隔>0次
但将此逻辑切换到each-objectProp[key]&&objectProp[key].length>0);
}
函数allIsEmptyFixed(objectProp){
return(Object.keys(objectProp).every(key=>objectProp[key]&&objectProp[key].length大多数答案似乎遗漏了关于逻辑的部分,只是有点错误。
他们会说空,如果只有一个项目是空的,。
这是因为逻辑是!every>0
但将此逻辑切换到each-objectProp[key]&&objectProp[key].length>0);
}
函数allIsEmptyFixed(objectProp){
return(Object.keys(objectProp).every(key=>objectProp[key]&&objectProp[key].length这将是一个很好的解决方案,但我使用的是“target”:“es2015”您可以使用@KathrineHanson提到的简单polyfill,而不是在回答完成后将其添加到每个答案中,请编辑您的问题并将其添加到那里……这将是一个很好的解决方案,但我使用的是“目标”:“es2015”您可以使用@KathrineHanson提到的简单polyfill,而不是在回答完成后将其添加到每个答案中,请编辑您的问题并将其添加到那里……这将是一个很好的解决方案,但我使用的是“目标”:“es2015”根据您的请求更新了轻微的逻辑错误,但OP使用了相同的!Object.value
&>0
,这意味着如果单个值不是空的,它将打印All is empty
,…它应该是Object.value
&我想您不明白我想要什么。我想检查对象的所有属性是否都是empty.不只是一个是空的,而是所有的。@Keith你是对的,它不工作,但你写它的方式我不明白。你能完整地写它吗?谢谢。这是一个很好的解决方案,但我使用的是“目标”:“es2015”根据您的请求更新了轻微的逻辑错误,但OP使用了相同的!Object.value
&>0
,这意味着如果单个值不是空的,它将打印All is empty
,…它应该是Object.value
&我想您不明白我想要什么。我想检查对象的所有属性是否都是empty.不仅是一个空,而是所有。@Keith你说得对,它不起作用,但你写的方式我不明白。你能完整地写吗?谢谢。这是一个很好的解决方案,但我使用的是“目标”:“es2015”这是一个很好的解决方案,但我使用的是“目标”:“es2015”这回答了你的问题吗?这回答了你的问题吗?