2017-10-24 11 views
0

チェーンを介して関数に配列を渡すことはできますか?私はこれが可能であると提案した仕事のためにJavaScriptテストに出くわしました。それは...ですか?JavaScriptのチェーン継承を介して関数に値を送信

var hereIsArray = [13,27,49,57]; 

function printArray() { 
    // insert code here to print array... 
    // this may read the parent of the chain, or the variable placed before the function in the chain. 
}; 

hereIsArray.printArray(); 

私は括弧の間には、関数に変数を渡すことに精通していると私はそれを行うだろう方法でしょう。

以下は、テスト(質問#5)が求めているもののコピーです。 "assignment.log"は出力をチェックするために作成した関数です。彼らが偵察している答えを見ることができます。

//#5 write code so that console logs print out true 
// add(addValue) should return a new arrays where addValue 
// is added to each value of original array 
// i.e. [6, 7, 8, 9, 10] and [11, 12, 13, 14, 15] 

// [your code goes here] 



var e = [1, 2, 3, 4, 5]; 

assignment.log(e.add(5) == '[6,7,8,9,10]', 5); 

var d = [1, 2, 3, 4, 5]; 

assignment.log(d.add(10) == '[11,12,13,14,15]', 5); 
+0

はい、それはプロトタイプ連鎖と呼ばれています –

+0

ええ、あなたは 'prototype'を使うことができますが、JavaScriptは配列を' .toString() 'で文字列に変換することができます。 – PHPglue

+0

JavaScriptを使用して数学を行う場合は、各数字にMath.pow(10,17)を乗算し、小数点以下を扱うときに加算または減算を行う場合は、同じ数値で除算する前に加算または減算します。 – PHPglue

答えて

0

Array.prototype.printArray = function(){ 
 
    return '['+this.toString()+']'; 
 
} 
 
var ary = [0, 5, 7, 25]; 
 
console.log(ary.printArray());

0

ジョブテストにシンプルかつストレートな答えがある:

Array.prototype.add = function (amount) { 
    return "[" + this.map(item => item + amount).toString() + "]"; 
}; 

1つはまたprototypeが何であるか、それはに物事を取り付けるとどのように役立つか説明できますそのタイプのインスタンス(あなたの主な質問)、しかし...もし私があなただったら、面接官に改善のためのいくつかの提案を提示しますENT最初:多分

  • いくつかのより良い名前に変更add()addToAll()、おそらく?)、または文字列に変換し、すべての項目別にその金額を追加する一つの関数にそれを破ります。
  • varを使用しないでください。それは2017年で、constthis参照)です。
  • ネイティブプロトタイプを拡張することは悪い習慣と考えられます(thisを参照)。そのため、代わりにヘルパー関数を作成することをお勧めします。さらに、数値ではないものの配列を持ち、そのメソッドを呼び出そうとするとどうなりますか?期待どおりに動作しないので、それをArrayプロトタイプに添付しない別の理由があります。
  • アサートの==は、===に置き換えてください(this参照)。

インタビューはすべてあなたのインタビュー担当者にとって驚くべきことです。たぶん彼らは単純で分かりやすい答え(実際にはかなり簡単です)を探しているだけでなく、提示されたコードについて何が間違っていたかを指摘する人を探していました。私は彼らの反応を見るために、面接官といくつかの悪いコードを対峙させています。良いプログラマー(あなたが雇いたい人)は、親切にが尋ねられたことを改善することを提案します。

関連する問題