Просмотр полной версии : Решить простенькую задачу
Здравствуйте помогите решить простенькую задачу.
it("make sentencer function", function() {
function sentencer(){
// BEGIN
// END
}
assert.equal("This is very good", sentencer("This", "is", "very", "good"));
На самом деле я ее решил, но воспользовался некой хитростью, а код необходимо писать только, где begin и end
решить простенькую задачу.
А в чем она заключается?
var assert = require('chai').assert;
it("make sentencer function", function() {
function sentencer(){
// BEGIN
return [].join.call(arguments, ' ')
// END
}
assert.equal("This is very good", sentencer("This", "is", "very", "good"));
});
На ECMAScript 6:
//запуск через mocha --compilers js:6to5/register file.js
var assert = require('chai').assert;
it("make sentencer function", function() {
const sentencer = (...words) => words.join(' ')
assert.equal("This is very good", sentencer("This", "is", "very", "good"));
});
return [].join.call(arguments, ' ')
Круто всего одна строка!
А можете рассказать подробней про эту строчку.
Я решил вот так
var sum = "";
for (var i=0; i<arguments.length; i++) {
sum +=arguments[i];
}
return sum;
это 5 строк, и к тому же добавил пробелы в аргументах.
А можете рассказать подробней про эту строчку.
join применяется не только для чистых массивов , но и для всех объектов со свойством length (Array-like)http://es5.javascript.ru/x15.4.html#x15.4.4.5
ну и идет дальше по циклу, от начала до значения в length
с Function.prototype.call я думаю ты знаком
еще демка
var a = { 0: 'Hello', 1: ' World!', length: 2 }
alert( [].join.call(a) )
Function.prototype.call я думаю ты знаком
Нет не знаком, только знакомлюсь с языком и программированием вообще =) Спасибо за ссылку
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot