javascript/es6-如何获取数组长度大于0的第一个对象值的索引

javascript/es6-如何获取数组长度大于0的第一个对象值的索引,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,我有一个充满数组的对象: const errors={name:[],date:['invalid format'],…} 我想在数组长度大于1的errors对象中找到第一个值的索引(或对象键,如果无法获得索引)。因此,在上面的示例中,date数组是对象中具有长度的第一个数组,因此理想情况下,我只返回1,或者date,如果需要的话 任何人都知道在javascript/es6中实现这一点的最简洁/最快速的方法吗?您可以在Object.keys()上使用find(),它将返回与条件匹配或未定义的第一

我有一个充满数组的对象:

const errors={name:[],date:['invalid format'],…}

我想在数组长度大于1的errors对象中找到第一个值的索引(或对象键,如果无法获得索引)。因此,在上面的示例中,
date
数组是对象中具有长度的第一个数组,因此理想情况下,我只返回
1
,或者
date
,如果需要的话

任何人都知道在javascript/es6中实现这一点的最简洁/最快速的方法吗?

您可以在
Object.keys()
上使用
find()
,它将返回与条件匹配或未定义的第一个结果

const errors={name:[],date:['invalid format']}
var result=Object.keys(errors).find(e=>errors[e].length);

log(result)
JavaScript对象的属性没有固有的顺序,因此,如果索引确实很重要,您可能需要使用数组


在这一点上,它就像是
错误。findIndex(e=>e.length>1)
,可以根据需要进行调整。

您可以使用
for..in
循环对象和
object.prototype.toString
检查值是否是数组

此外,要查找索引,您可能需要使用Object.keys,它将从对象创建一个键数组。Js对象没有
索引

const错误={
姓名:[],
测试:1,
日期:[“无效格式”],
测试2:2
}
for(错误中的var键){
if(Object.prototype.toString.call(errors[keys])=='[Object Array]'&&errors[keys].length>0){
console.log(错误[键])
}

}
对象属性的索引是什么意思?对象没有顺序,因此没有“第一个”索引,也没有键的“索引”。只有键。为什么不
.findIndex()
,因为OP最好想要索引?@yuriy636因为一个对象没有保证的属性顺序。你确定它会返回第一个数组对象吗?@str不使用
对象.prototype.toString
?@brk它很难看,很慢,很长,难以记忆,在ES6中可能被欺骗。