毎日30秒、条件によって、配列を二つのセットに分けます.

1390 ワード

概要
配列、分割
条件に応じて配列を二つのセットに分けます.
//        https://30secondsofcode.org
const bifurcateBy = (arr, fn) =>
  arr.reduce((acc, val, i) => (acc[fn(val, i) ? 0 : 1].push(val), acc), [[], []])
コード解析
このコードは主にAray.prototype.reduceとAray.prototype.pushを利用して、遍歴しながら集められます.ここで、巧妙な点は、 がaccを動作させた後、accの値を返すことである.簡単な例を以下に挙げます.
let acc = []

let pushed = (acc.push(2), acc)

//    [2]
console.log(pushed)
使用シーン
合格と不合格の成績の学生をグループに分けて、もちろんArray.prototype.filterで直接合格と不合格の成績を獲得することもできます.
const CUT_OFF_SCORES = 60
const students = [
    { name: 'xiaoer', score: 80 },
    { name: 'xiaosi', score: 90 },
    { name: 'menty', score: 50 },
]

const group = bifurcateBy(students, (student) => student.score >= CUT_OFF_SCORES)
類似コード
条件配列に従って、元の配列を分類する.例えばbifurcate(['beep', 'boop'], [true, false]).
//        https://30secondsofcode.org
const bifurcate = (arr, filter) =>
  arr.reduce((acc, val, i) => (acc[filter[i] ? 0 : 1].push(val), acc), [[], []])
共に成長する
困った都市では肩を並べて同行する人が必ずいます. は私達を一緒に成長させます.
  • より多くの人に文章を見てもらいたいなら、 を注文してもいいです.
  • を励まそうとすれば、二年生はギズブに を与えられます.
  • もし小二ともっと交流したいなら、WeChat m353839115を追加します.
  • この原稿はPush MeTopから来ています.