Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点v12.6.0中的array.reverse()存在问题_Javascript_Reactjs_Mdns - Fatal编程技术网

Javascript 节点v12.6.0中的array.reverse()存在问题

Javascript 节点v12.6.0中的array.reverse()存在问题,javascript,reactjs,mdns,Javascript,Reactjs,Mdns,在将节点更新到最新版本后,我的测试中断,说我的数组没有反转。我有一个包含4个数字的数组,并开玩笑地说它希望数组中的数字反转,但在运行.reverse()之后,它并没有按照预期的那样执行。这是节点的一种新问题吗 it(`should handle ${SORT_MEMBERS}`, () => { const members = [{ ssn: 7 }, { ssn: 6 }, { ssn: 5 }, { ssn: 4 }]; const attr = 'ssn';

在将节点更新到最新版本后,我的测试中断,说我的数组没有反转。我有一个包含4个数字的数组,并开玩笑地说它希望数组中的数字反转,但在运行.reverse()之后,它并没有按照预期的那样执行。这是节点的一种新问题吗

  it(`should handle ${SORT_MEMBERS}`, () => {
    const members = [{ ssn: 7 }, { ssn: 6 }, { ssn: 5 }, { ssn: 4 }];

    const attr = 'ssn';
    const order = SORT_ORDER.ASC;

    let newState = reducer(state, {
      type: INIT_MEMBERS,
      payload: { members },
    });

    newState = reducer(newState, {
      type: SORT_MEMBERS,
      payload: { attr, order }
    });

    expect(newState).toEqual({
      ...state,
      members: members.reverse(),
      sort: { attr, order },
    });

  });
初始状态:

const initialState = {
  batchUpdates: {
    salaryChangePercentage: '',
    applyDate: null,
  },
  form: {
    ableToWork: null,
    memberErrors: null,
  },
  updates: {}, // hash with ssn as key
  members: [],
  errors: {},
  sort: {
    attr: null,
    order: null,
  },
  saving: false,
  saved: false,
  saveResult: null,
  saveError: null,
};
个案组成员:

 case SORT_MEMBERS:
      return {
        ...state,
        members: sortMembers(state.members, state.updates, action.payload.attr, action.payload.order),
        sort: {
          attr: action.payload.attr,
          order: action.payload.order,
        },
      };
最后是我的排序方法:

export const sortMembers = (members, updates, attr, order) => {
  const sorted = members.slice();
  const path = attr.split('.');
  const byUpdates = path.length === 2 && path[0] === 'updates';

  if (!byUpdates) {
    return sorted.sort((a, b) => (
      order === SORT_ORDER.DESC ? a[attr] < b[attr] : a[attr] > b[attr]
    ));
  }
  // Sort by updates on given ssn
  return sorted.sort((a, b) => (
    order === SORT_ORDER.DESC
      ? updates[a.ssn][path[1]] < updates[b.ssn][path[1]] : updates[a.ssn][path[1]] > updates[b.ssn][path[1]]
  ));
};
export const sortMembers=(成员、更新、属性、顺序)=>{
const sorted=members.slice();
常量路径=属性拆分('.');
constbyupdates=path.length==2&&path[0]==updates';
如果(!ByUpdate){
返回已排序的。排序((a,b)=>(
订单===SORT\u order.DESC?a[attr]b[attr]
));
}
//按给定ssn上的更新排序
返回已排序的。排序((a,b)=>(
订单===SORT\u order.DESC
?更新[a.ssn][path[1]<更新[b.ssn][path[1]]:更新[a.ssn][path[1]]>更新[b.ssn][path[1]]
));
};

在我更新我的Node.js之前,它就可以工作了。我找到了问题的解决方案

以下代码中存在错误类型:

order === SORT_ORDER.DESC ? a[attr] < b[attr] : a[attr] > b[attr]

请提供有问题的测试。测试中的代码99.9%是最可能的罪魁祸首,而不是语言提供的方法。在
let newState=reducer(state,{
您可以发布
减速机
状态
?^或提供它们的库的文档链接吗
order === SORT_ORDER.DESC ? a[attr] + b[attr] : a[attr] - b[attr]