先端js奇淫テクニック(二)
7813 ワード
一.指定した範囲内の乱数を取得
この機能はテスト用のダミーデータを生成する際に特に有用である
二.0から指定値までの数値配列を生成
三.ランダムなアルファベット文字列の生成
四.数字の配列の順序を狂わせる
五.配列内の最大値と最小値の取得
六.指定した小数点以下の桁数を保持
七.浮動小数点計算の問題
八.lengthプロパティを使用して配列を空にする
九.lengthプロパティを使用して配列を切断するには
十.配列からdeleteまたはremove要素を直接使用しないでください
配列要素にdeleteを直接使用すると、削除されずにundefinedに設定されます.配列要素の削除にはspliceを使用します.
十一.map()関数メソッドを使用したデータループ
十二.配列にfor-inを使用しないでください
iとlenの2つの変数はforループの最初の宣言で、両者は1回だけ初期化され、次のような書き方よりも速いです.
この機能はテスト用のダミーデータを生成する際に特に有用である
var max = 100;
var min = 50;
var x = Math.floor(Math.random() * (max - min + 1)) + min;
console.log(x);
二.0から指定値までの数値配列を生成
var numbersArray = [];
var max = 100;
for( var i=1; numbersArray.push(i++) < max;);
console.log(numbersArray); // [1,2,3 ... 100]
三.ランダムなアルファベット文字列の生成
function generateRandomAlphaNum(len) {
var rdmString = "";
for( ; rdmString.length < len; rdmString += Math.random().toString(36).substr(2));
return rdmString.substr(0, len);
}
console.log(generateRandomAlphaNum(10));
四.数字の配列の順序を狂わせる
var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
numbers = numbers.sort(function(){ return Math.random() - 0.5});
console.log(numbers);
五.配列内の最大値と最小値の取得
var numbers = [5,0,120,-215,228,11233205,-75411];
var maxInNumbers = Math.max.apply(Math, numbers); //
var minInNumbers = Math.min.apply(Math, numbers); //
console.log(maxInNumbers);
console.log(minInNumbers);
六.指定した小数点以下の桁数を保持
var num =2.443242342;
num = num.toFixed(4);
console.log(num); //2.4432
七.浮動小数点計算の問題
console.log(0.1 + 0.2 === 0.3); // false
console.log(9007199254740992 + 1); // 9007199254740992
console.log(9007199254740992 + 2); // 9007199254740994
八.lengthプロパティを使用して配列を空にする
var myArray = [12 , 222 , 1000 ];
myArray.length = 0;
console.log(myArray); //[]
九.lengthプロパティを使用して配列を切断するには
var myArray = [12 , 222 , 1000 , 124 , 98 , 10 ];
myArray.length = 4;
console.log(myArray); // [12 , 222 , 1000 , 124]
十.配列からdeleteまたはremove要素を直接使用しないでください
配列要素にdeleteを直接使用すると、削除されずにundefinedに設定されます.配列要素の削除にはspliceを使用します.
var items = [12, 548 ,'a' , 2 , 5478 , 'foo' , 8852 ,, 'Doe' ,2154 , 119 ];
console.log(items.length); // 11
console.log(delete items[3]); // true
console.log(items.length); // 11
items.splice(3,1);
console.log(items.length); // 10
十一.map()関数メソッドを使用したデータループ
var squares = [1,2,3,4].map(function (val) {
return val * val;
});
console.log(squares); // [1,4,9,16]
十二.配列にfor-inを使用しないでください
var sum = 0;
for (var i = 0, len = arrayNumbers.length; i < len; i++) {
sum += arrayNumbers[i];
}
iとlenの2つの変数はforループの最初の宣言で、両者は1回だけ初期化され、次のような書き方よりも速いです.
for (var i = 0; i < arrayNumbers.length; i++)