Ux.elementAdd

去重版本的数组添加

源代码:

// Ux.Type.js
const elementAdd = (array = [], element) => {
    if (element) {
        if ("object" === typeof element) {
            const filter = array.filter(item => element.key === item.key);
            if (0 === filter.length) {
                array.push(element);
            }
        } else if ("string" === typeof element || "number" === typeof element) {
            const $elements = Immutable.fromJS(array);
            if (!$elements.contains(element)) {
                array.push(element);
            }
        }
    }
};

规则:

  • array为一个JavaScript中的数组Array;
  • element不为undefined时才会执行追加;
  • 如果追加的是Object,则检查key字段是否存在,不存在则追加;
  • 如果追加的是string或number,则直接检查值是否存在再追加;

示例:

const fnCalcRoomNumber = (reference: any = {}) => {
    const $data = reference.props.data ? reference.props.data : {};
    const roomNumbers = [];
    if ($data && $data.travelers) {
        $data.travelers.forEach(traveler => Ux.elementAdd(roomNumbers, traveler.roomNumber));
    }
    return roomNumbers;
};

results matching ""

    No results matching ""