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);
...