2017-07-28 10 views
0

私は少し迷惑な構文の問題に遭遇しました。私は現在、pdfファイルを扱うためのはさみをノードモジュールとして使用しています。 PDFファイルのページの一部を選択するための構文は、ドキュメントに記述されているJavascriptのconcat文字列

var scissors = require('scissors'); 
var pdf = scissors('in.pdf') 
    .pages(4, 5, 6, 1, 12) 

これは実際に私のために素晴らしい作品が、私は動的にこれを行うにしたいと思います。 JavaScriptを使って整数をコンマに連結する方法は?文字列を渡すと、関数はそれ以上動作しません。

ありがとうございました

+0

[ES6スプレッド構文]があります(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator) –

答えて

2

n個の値を関数の引数として渡しています。それをStringに連結すると、1つの引数、連結されたStringだけが渡されます。

は、おそらくあなたは数字を持っている場合は、このような関数に渡したい配列に広がりオペレータhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator

を使用したい:

var scissors = require('scissors'); 
var pages = [4, 5, 6, 1, 12]; 
var pdf = scissors('in.pdf') 
    .pages(...pages); 
+0

私はこれを見たことがないすごいです。うまく働いた –

2

あなたが機能を使用することができます。このためのprototype.apply。

var scissors = require('scissors'); 
var pdf = scissors('in.pdf'), 
    args = [4, 5, 6, 1, 12]; 

scissors.pages.apply(pdf, args); 
+0

ありがとう、ちょうど私が捜したもの –

0

私はあなたがページ関数に引数の配列を渡したいと思っています。あなたは、あなたが関数にページ番号の配列を渡すことができるはずのjavascriptのapply function

var scissors = require('scissors'); 
var pdf = scissors('in.pdf') 

pdf.pages.apply(pdf, [4, 5, 6, 1, 12]) 
1

でこれを達成することができます。 私はscissors source codeを見ていたし、彼らが実際に引数を自分の世話をするように見える:

/** 
* Creates a copy of the pages with the given numbers 
* @param {(...Number|Array)} Page number, either as an array or as  arguments 
* @return {Command} A chainable Command instance 
*/ 
Command.prototype.pages = function() { 
    var args = (Array.isArray(arguments[0])) ? 
    arguments[0] : Array.prototype.slice.call(arguments); 
    var cmd = this._copy(); 
    return cmd._push([ 
    'pdftk', cmd._input(), 
    'cat'].concat(args.map(Number), [ 
     'output', '-' 
     ])); 
}; 

あなたはArray.prototype.sliceと配列に結合される複数の引数を渡すか、単に使用される配列を渡すことができます直接。

var scissors = require('scissors'); 

var pages = []; 

/* collect desired pages */ 
pages.push(23); 
pages.push(42); 
pages.push(1337); 

var pdf = scissors('in.pdf').pages(pages); 
関連する問題