JS アルゴリズムのブラッシング質問メモ—day04 (Niuke フロントエンド チャレンジの質問 11)


序文

Niuke.com にはフロントエンドの知識を備えた乾物がたくさんあります。皆さん急いでください。

1.ニウケフロントエンド大チャレンジ11問 - 文字列をこぶ形式に変換

CSSのbackground-imageのように、文字が-でつながっている場合が多いのですが、JavaScriptでスタイルを設定する場合、このスタイルをbackgroundImageのキャメルケース形式に変換する必要がありますので、この変換機能を完了させてください。

  1. - を区切り文字として使用して、空ではない 2 番目の単語の最初の文字を大文字に変換します。
  2. -webkit-border-image 変換結果は webkitBorderImage です
  function cssStyle2DomStyle(sName) {
    
    
      let arr = sName.split(''); //split切割字符串,并且转为一个数组
      if (arr.indexOf('-') === 0) {
    
    
        arr.splice(0, 1); //删除匹配到的-,对原来的数组进行删除
      }


      for (var i = 0; i < arr.length; i++) {
    
    
        // 如果匹配到的还有-,进行删除,然后将后一个值进行大写
        if (arr[i] === '-') {
    
    
          arr.splice(i, 1); //删除匹配到的-
          arr[i] = arr[i].toUpperCase(); //将后一个字符串转为大写
        }
      }
      return arr.join(''); //将数组拼接为一个字符串
    }

2、アイデア

最初にこの質問を見たときは正規表現を使ってやろうと思ったのですが、しばらくやってみると自分の考えがうまくいっていないことに気づき、考えを変えました。

  1. まず文字列を取得し、その文字列を配列に分割し、最初の判断を行って、最初の - を削除します。
  2. for ループでは、次の - と一致し、削除して、最後の配列要素を大文字に変換します。
  3. for トラバーサルが完了し、文字列が配列に結合され、文字列が出力されます
  4. 終了

要約する

タップすればするほど、パズルを早く解くことができます。しかし、この質問にはもっと良い解決策があります。私の解決策は単なる私の個人的な考えです。

おすすめ

転載: blog.csdn.net/weixin_45331887/article/details/118486253