Object.values的每个函数都不起作用

时间:2017-11-10 02:33:59

标签: javascript

我有一个对象,我需要检查所有值是否都为真。

{
  condition1: true, 
  condition2: true,
  condition3: false
}

我使用Object.value来获取true和false值的数组。但是我似乎无法使每个函数都起作用,它总是返回true。

const test = Object.values(equipmentSelection)
  .every((element) => {
    if (element = true) return true;
  });

3 个答案:

答案 0 :(得分:2)

只需返回元素而不使用条件检查,你可以这样做

 const test = Object.values(equipmentSelection)
  .every(element => element)
  });

答案 1 :(得分:1)

您使用的是分配运算符=,而不是逻辑=====运算符。因此,您基本上将element设置为等于true,然后使用相同的值(true)作为if的条件。因此,if条件始终为true,因此会为数组中的每个元素返回true

由于element的类型为布尔值,因此您不需要if语句,只需使用其值:

.every(element => element);

答案 2 :(得分:0)

你可以这样做。

import React, { Component } from 'react';
import { View, Animated } from 'react-native';

class Ball extends Component {
  conponentWillMount() {
    this.position = new Animated.ValueXY(0,0);
    Animated.spring(this.position, {
      toValue: { x: 200, y: 500 }
    }).start();
  }

  render() {
    return (
      <Animated.View style={this.position.getLayout()}>
        <View style={styles.ball} />
      </Animated.View>
    );
  }

}

const styles = {
  ball: {
    height: 60,
    width: 60,
    borderRadius: 30,
    borderWidth: 30,
    borderColor: 'red'
  }
}

export default Ball;`enter code here`

和其他人一样说,

const test = Object.values(equipmentSelection)
   .every(element => element===true);

将返回带有true或false的元素值,这将是您通过比较获得的值。