我有一个数组,其中包含一个对象,其中包含4个元素:
Task 3: [
{
"action_3": 1,
"action_4": 1,
"action_5": 0,
"action_6": 0
}
]
我已经做到了这一点:
this.Task3 = this.actions.map(item => {
return {
action_3: item.action_3,
action_4: item.action_4,
action_5: item.action_5,
action_6: item.action_6
}
})
对于下一部分,我想检查是否存在多个1-结果应该为2。
到目前为止,这是我的代码:
task3Progress() {
for (const key of this.Task3) {
const task3length = Object.keys(key).length
//should print 2 to console
console.log(Object.values(key).reduce(
(count, value) => count + (compare === value ? 1 : 0),
0)
);
//prints 4 to screen
return task3length
}
},
我想做两件事:
1)返回4
的计数,表示存在的元素数
2)检查有多少1
退出,并返回2
我该怎么做?
答案 0 :(得分:1)
尝试这样,希望您能达到目标。
(define (gen-list low high)
((λ (gla)
(gla gla high '()))
(λ (cont i result)
(if (< i low)
result
(cont cont (- i 1) (cons i result))))))
以下我也附上了代码段。您可以检查结果。
task3Progress() {
for (var i=0;i<Task3.length;i++){
// will print 4 in console
console.log(Object.keys(Task3[i]).length);
let values= Object.values(Task3[i]);
var equaToOne = values.filter(function (item) {
return item == 1;
})
// will print 2 in console
console.log(equaToOne.length);
return equaToOne.length;
}
}
答案 1 :(得分:0)
检查一下。
var task_3 = [
{
"action_3": 1,
"action_4": 1,
"action_5": 0,
"action_6": 0
}
] ;
var key_count = 0 ;
var one_count = 0 ;
var print_keys = function() {
for(action in task_3[0]){
key_count++
if(task_3[0][action] == 1){
one_count++
}
}
console.log('key_count = ',key_count, '& one_count=', one_count)
}
<button onclick="print_keys()">print</button>
答案 2 :(得分:0)
这实际上与vuejs没有任何关系。这只是基本的javascript:
const actions = [{
"action_3": 1,
"action_4": 1,
"action_5": 0,
"action_6": 0
}];
function countActions() {
return Object.keys(actions[0]).length;
}
function countOccurences(compare) {
return Object.values(actions[0]).reduce(
(count, value) => count + (compare === value ? 1 : 0),
0
);
}
然后调用countActions()
和countOccurences(1)
。