pluck

Создать функцию, которая для переданного имени поля вернет callback для выборки из массива объектов массива только с этим полем.

by l_gordienkova

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.4.5/mocha.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.4.5/mocha.min.css">
<div id="mocha">
</div>
<script>
  mocha.setup('bdd');
  var assert = chai.assert;
  var expect = chai.expect;
</script>
<script>

  describe("pluck", function() {
    before(function () {
      chai.config.includeStack = false;
    });
    describe('формат', function(){
      it("объявлена", function() {
        assert.isFunction(window.plucker);
      });
      it("принимает 1 аргумент", function() {
        assert.equal(window.plucker.length, 1);
      });
    });
    if(typeof(window.plucker) == 'function'){
      describe('проверки', function(){
        const ALPHA = symbolRange('a', 'z');
        const DIGITS = symbolRange('0', '9');;
        const ALPHANUM = ALPHA.concat(DIGITS);
        function symbolRange(start, end){
          start = start.charCodeAt(0);
          end = end.charCodeAt(0);
          var result = [];
          while(start <= end)
            result.push(String.fromCharCode(start++));
          return result;
        }
        function pickRandomly(range){
          return range[~~(Math.random() * range.length)];
        }
        function randomAlphaNum(length){
          var result = pickRandomly(ALPHA);
          while(result.length < length)
            result += pickRandomly(ALPHANUM);
          return result;
        }
        function randomObjectWithField(field, fieldCount, fieldLength, valueLength){
          var result = {};
          for(var i = 0; i < fieldCount; ++i)
            result[randomAlphaNum(fieldLength)] = randomAlphaNum(valueLength);
          result[field] = randomAlphaNum(valueLength);
          return result;
        }

        function suite(name, field, size){
          describe(name, function(){
            var callback = plucker(field);
     ...