首先,你得弄清楚js的”数组“和”对象“,
var a=["23333","hhhhh"]//数组,获取值的方式为“a[索引]”,如a[0]var a={
alpha:"6666",
beta:"66666"
}//对象, 获取值的方式可以为 a.键名 或者 a["键名"] ,如:a.alpha或者a["alpha"]
估计你把对象和数组搞混了。
数组获取长度的方式为:a.length
对象获取长度的方式为:Object.getOwnPropertyNames(a).length
以下是对象获取长度的测试代码,测试地址:
http://www.w3school.com.cn/tiy/t.asp?f=jquery_manipulation_before_func
<html><head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#btn1").click(function(){
var a = {
alpha:6666,
beta:66666
}
alert(Object.getOwnPropertyNames(a).length)
})
})
</script>
</head>
<body>
<button id="btn1">Show me</button>
</body>
</html>
var t = [{value:'待料停'},{value:'运行'},{value:'其他停'},{value:'离线'},{value:'断纱停'},{value:'关机'},{value:'关机'}]
for(var i of t){
var count = 0
for(var j of t){
if(j.value === i.value){
count++
}
}
i.count = count
}
console.log(t)
嫌循环太麻烦,也可以这样简化:
var t = [{value:'待料停'},{value:'运行'},{value:'其他停'},{value:'离线'},{value:'断纱停'},{value:'关机'},{value:'关机'}]
var res = Array.from(t,item =>{
item.count = t.filter(j =>j.value === item.value).length
return item
})
console.log(res)