ホームページ  >  記事  >  ウェブフロントエンド  >  JS 配列、文字列、数学関数

JS 配列、文字列、数学関数

jacklove
jackloveオリジナル
2018-05-21 11:55:551332ブラウズ

この記事ではjsの配列、文字列、関数について説明します。

配列メソッドのpush、pop、shift、unshift、join、splitの機能は何ですか?

push: 配列の最後に要素を追加します。構文はarray.push(追加する要素)です。 ;、戻り値は配列の長さです

pop: 配列の最後の要素を削除します。構文は array.pop(); 戻り値は削除された要素の名前です

shift: 最初の要素を削除します配列の場合、構文は array.shift(); 戻り値は削除された要素の名前です

unshift: 配列の先頭に要素を追加し、後続の要素を後方にシフトします。 (追加する要素);、戻り値は配列の長さです。

join: 元の配列を変更せずに配列を文字列に接続します。構文は array.join() で、戻り値は完成した文字列

split: 元の文字列を変更せずに文字列を配列に分割します。構文は string.split('separator' ; splice(new1.length,0,91) //new1.length は最後の桁以降を表します配列、0 は追加するキーワード、91 は追加する要素 []

new1

[91, 3, 2, 1, 34, 5, 91] //配列 new1 の最後に要素 91 が正常に追加されました

スプライスを使用してポップを実装します:

new1
[91, 3, 2, 1, 34, 5, 9, 91] // new1 配列の要素 new1 .splice(new1.length-1,1) // new1.length は配列の最後の桁を表します。1 は長さです [91]

new1
[91, 3, 2, 1, 34, 5, 9] //成功 最後の要素を削除します 91

に接続しますシフトの実装:

new1アレイサブスクリプトインデックス番号、1は削除の数を表します[91]。 array new1.splice(0,0,91) //最初の 0 は配列の添字インデックス番号を表し、2 番目の 0 は追加するキーワード、91 は追加する要素です []

new1
[91, 3, 2, 1, 34, 5, 645] //配列の最初の位置にある配列を使用して要素 91 が正常に追加されました

var prod = {    name: '女装',    styles: ['短款', '冬季', '春装']
};function getTp(data){  var new1  = prod.name;  var new2  = prod.styles;  var arrey =[];
  arrey.push(&#39;<dl class="product">&#39;);
  arrey.push("<dt>"+new1+"</dt>");  for(var i =0;i<new2.length;i++){
  arrey.push("<dd>"+new2[i]+"</dd>")
  }
  arrey.push(&#39;</dl>&#39;);  console.log(arrey.join());  
}
getTp(prod)//<dl class="product">,<dt>女装</dt>,<dd>短款</dd>,<dd>冬季</dd>,<dd>春装</dd>,</dl>

次の関数を実現する検索関数を作成します

var arr = [ "test" , 2 , 1.5 , false ]function find(arr,add){  for(var i = 0;i < arr.length; i++){    if(add==arr[i] && add !== 0){      return console.log(i)
    }
  }  console.log(-1)
}
find(arr, "test") // 0find(arr, 2) // 1find(arr, 0) // -1

Write次の関数を実装する関数 filterNumeric

arr = ["a", 1,3,5, "b", 2];var arre = [];function filterNumeric(arr){  for(var i= 0; i< arr.length;i++){      if(typeof arr[i]===&#39;number&#39;){
      arre.push(arr[i])
      }
  }  console.log(arre);
}
filterNumeric(arr)  //[1, 3, 5, 2]

オブジェクト obj には className 属性があり、内部の値はスペースで区切られた文字列 (html 要素の class 属性と同様) です。次のような addClass 関数とremoveClass 関数を記述します。関数:

var obj = {  className: &#39;open menu&#39;};  var shu = obj.className.split(" ");     
function addClass(obj,nano){                
  for(var i = 0;i< shu.length; i++) {        
    if(shu[i] === nano) {              
      return console.log("因为"+nano+"已经存在,此操作无任何办法");
    }                             
  }
  shu.push(nano);                   
 //console.log(shu);
  obj.className = shu.join(" ");   console.log(obj);
} 
addClass(obj, &#39;new&#39;);          //Object {className: "open menu new"}addClass(obj, &#39;open&#39;);        //因为open已经存在,此操作无任何办法addClass(obj, &#39;me&#39;);           // Object {className: "open menu new me"}console.log(obj.className);    // open menu new mefunction removeClass(obj,habo){  //console.log(shu)
  for(var i = 0;i<shu.length;i++){    if(shu[i] === habo) {
      shu.splice(i,1);
    }
  }
  obj.className = shu.join(&#39; &#39;);  console.log(obj);
}
removeClass(obj,"open");        //Object {className: "menu new me"}removeClass(obj, &#39;blabla&#39;);    //Object {className: "menu new me"}

my-short-string 形式の文字列を myShortString 形式の文字列に変換する Camelize 関数を作成します
function camelize(lama){  var lala = lama.split("-");  //["list", "style", "image"]
  var a =[lala[0]];  for(var i =1; i<lala.length; i++) {    var num =lala[i][0].toUpperCase();        //"S",    "I"
    var b = lala[i].replace(lala[i][0],num)
    a.push(b)  
  }console.log(a.join(""))
}
camelize("background-color")   //"backgroundColor"camelize("list-style-image")    //"listStyleImage""

次のコードは何を出力しますか?なぜですか?

arr = ["a", "b"];  
arr.push( function() { alert(console.log(&#39;hello hunger valley&#39;)) } );
arr[arr.length-1]()  //

出力は関数 function 'helloung valley' の内容であり、ポップアップ ウィンドウはアンダーファインで表示されます。 2 番目の段落では関数全体を配列 arr の後ろに直接追加して最後の要素にしており、最後の文は arr 配列の最後の要素で呼び出しを実行することを意味しているため、実行後に console.log は破棄されます。印刷結果は「helloung valley」です。ポップアップウィンドウの結果は不十分です


関数 filterNumericInPlace を作成して、配列内の数値をフィルタリングし、数字以外を削除します

arr = ["a", 1 , 3 , 4 , 5 , "b" , 2];function filterNumericInPlace(arr){ 
  for(var i= 0; 0< arr.length; i++) {    
    if( typeof arr[i] !== &#39;number&#39;){
      arr.splice(i,1)
    }       
  }  console.log(arr);  // [1,3,4,5,2]}
filterNumericInPlace(arr);

ageSort 関数を作成して、次の関数を実装します
var john = { name: "John Smith", age: 23 };var mary = { name: "Mary Key", age: 18 };var bob = { name: "Bob-small", age: 6 };var people = [ john, mary, bob ];function ageSort(data){
  data.sort(function (a,b){    return a.age-b.age;
  })  console.log(data);
}
ageSort(people); // [ bob, mary, john ]

配列をフィルタリングする filter(arr, func) 関数を作成し、2 つのパラメータを受け入れます。最初のパラメータは処理される配列で、2 番目のパラメータはコールバック関数です (コールバック関数は各配列要素を走査して受け入れ、関数が true を返した場合は要素、それ以外の場合は要素を削除します)

function isNumeric (el){    return typeof el === &#39;number&#39;; 
}
arr = ["a",3,4,true, -1, 2, "b"];function filter(arr, func){  
  for(var i =0;i<arr.length;i++){    if(!func(arr[i])){
      arr.splice(i,1);
    }
  }  return arr;
}
arr = filter(arr, isNumeric) ;console.log(arr);
arr = filter(arr,function(val){ return val > 0});console.log(arr); 
[3, 4, -1, 2]
[3, 4, 2]

String

最初の文字が大文字である文字を返す ucFirst 関数を作成します

function ucFirst(daho){  var add= daho[0].toUpperCase();
  daho=daho.replace(daho[0],add)  console.log(daho);
}
ucFirst("hunger")"Hunger"

str の長さが次の場合、関数 truncate(str, maxlength) を作成します。 maxlength より大きい場合、str は maxlength に切り捨てられて追加されます...、例:

function truncate(str, maxlength){  if(str.length-1>maxlength){
    add = str.substr(0,maxlength);    console.log(add+"...");
  }else{    return console.log(str);
  }
}
truncate("hello, this is hunger valley,", 10)
truncate("hello world", 20)"hello, thi...""hello world"

数学関数

関数 limit2 を記述し、数値を小数点以下 2 桁に保ち、四捨五入します。例:

var num1 = 3.456;function limit2(num){
  num=Math.round(num*100)/100;  console.log(num);
}
limit2(num1)
limit2(2.42)3.462.42

Write a最小値から最大値までの乱数を取得する関数(最小値は含むが最大値は除く)

function habo(min,max){   console.log(Math.random()*(min-max)+max)
 }
 habo(5,15)

最小値と最大値を含む、最小値から最大値までのランダムな整数を取得する関数を作成します

function habo(min,max){
  add = Math.random()*(min-max)+max;  console.log(Math.round(add));  
 }
 habo(5,12)

ランダムな配列を取得する関数を作成します。配列の長さは len で、最小値は min、最大値は max (を含む) の乱数です

function damo(len,min,max){
  arr=[];
  len == arr.length;  for(var i =0;i<len;i++){
    arr.push(Math.round(Math.random()*(min-max)+max));
  }  console.log(arr)
}
damo(5,18,70)
[53, 34, 43, 43, 33]

この記事では、JS 配列、文字列、数学関数に関連する内容について説明します。 PHP 中国語 Web サイトにご注意ください。

関連する推奨事項:

JS 時間オブジェクトと再帰の問題について

CSS スタイルの基本的な知識

JSタイマーとクロージャーの問題についての説明

以上がJS 配列、文字列、数学関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。