Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.10.2017, 19:46
Интересующийся
Отправить личное сообщение для Gtfuc Посмотреть профиль Найти все сообщения от Gtfuc
 
Регистрация: 22.08.2017
Сообщений: 27

PartitionOn need help to explain this task
Есть задачка на codewars:
Write a function which partitions a list of items based on a given predicate.

After the partition function is run, the list should be of the form [ F, F, F, T, T, T ] where the Fs (resp. Ts) are items for which the predicate function returned false (resp. true).

NOTE: the partitioning should be stable; in other words: the ordering of the Fs (resp. Ts) should be preserved relative to each other.

For convenience and utility, the partition function should return the boundary index. In other words: the index of the first T value in items.

For example:

var items = [1, 2, 3, 4, 5, 6];
function isEven(n) {return n % 2 == 0}
var i = partitionOn(isEven, items);
// items should now be [1, 3, 5, 2, 4, 6]
// i     should now be 3



Sample tests:
var items = [1, 2, 3, 4, 5, 6];
function isEven(n) {return n % 2 == 0}
var i = partitionOn(isEven, items);
Test.assertEquals( i, 3, 'partioned at 3' );
Test.assertSimilar( items.slice(0, i), [1, 3, 5] );
Test.assertSimilar( items.slice(i),    [2, 4, 6] );



Мой код:
// partition the items array so that all values for which pred returns true are
// at the end, returning the index of the first true value
function partitionOn(pred, items) {
    var pTrue = [];
    var pFalse = [];
    items.forEach( function(value) {
    if (pred(value)) { pTrue.push(value);}
    else {pFalse.push(value);}});
    items = pFalse.concat(pTrue);
    return pTrue.length, items;
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java Timer Example skumjava Учебные материалы 0 05.04.2016 22:59
Angular task workflow mardoksp Angular.js 0 15.02.2016 21:34
Как улучшить код, ооп meam Общие вопросы Javascript 11 22.08.2014 13:43