Giter Site home page Giter Site logo

notes's People

Contributors

way2ex avatar

Stargazers

 avatar

notes's Issues

算法学习之反转字符串

  • 方法一——二分法
function binaryReverse(s) {
  int n= s.length;
  if (n <= 1) {
    return s
  }
  var sub1 = s.slice(0, n / 2);
  var sub2 = s.slice(n / 2, n);
 return binaryRevert(sub2) + binaryRevert(sub1);
}
  • 方法二——循环法
function forReverse(s) {
  var n = s.length;
   if (n <= 1) {
     return s;
   }
   var tmp = [];
    for (let i = n; i >= 0; i--) {
        tmp.push(s[i]);
    }
    return tmp.join('');
}
  • 方法三——api法
function apiReverse(s) {
    return a.split('').reverse().join('');
}

算法学习之回环变位( circular rotation )

回环变位就是一个字符串 s 中的字符在经过循环移动任何位置后得到的另一个字符串,例如: ACTGACG就是 TGACGAC 的变位。
判断两个字符串是否互为回环变位,方法如下:

 var  a = 'ACTGACG';
 var  b = 'TGACGAC';

 if ( a.length === b.length && a.concat(a).indexOf(b) !== -1 ) {
     console.log('两个字符串互为回环变位');
 }

第二种方法使用遍历,对每个字符进行左右分隔,然后交换位置,将得到的每个字符串和要比较的字符串对比,如果互为回环变位,则必将命中一个。

var  a = 'ACTGACG';
var  b = 'TGACGAC';
for (var i = 1; i <= a.length; i++) {
  let left = a.slice(0, i);
  let right = a.slice(i, a.lenth);
  if ( (right + left ) === b ) {
    console.log('互为回环变位');
  }
}

VS Code使用之Vue工程配置format代码格式化

编辑器另外一个很重要的功能就是代码格式化了,VS Code默认提供常见文件的格式化,如.js,.html等。

添加对.vue文件的格式化支持

这里我们添加对.vue文件的格式化支持。

  1. 安装 Vetur 插件
  2. 在 VS Code 的设置中添加如下规则:
{
      "vetur.format.defaultFormatter": {
        "html": "prettier",
        "css": "prettier",
        "postcss": "prettier",
        "scss": "prettier",
        "less": "prettier",
        "js": "prettier",
        "ts": "prettier",
        "stylus": "stylus-supremacy"
    }
}

这里是设置 Vetur 默认使用的格式化插件 prettier。 这样对于.vue文件中的 htmljavascript 代码都有格式化支持了。

使用符合 ESLint 规范的格式化

  1. 使用 prettier 格式化 .js 文件
    可以设置 prettier 在格式化的时候,读取项目的 .eslintrc的配置,对 js代码进行格式化。
  • 首先为 VS Code 安装 prettier 插件
  • 在 VS Code 的设置中添加如下配置
      "prettier.eslintIntegration": true
  1. .vue文件的格式化
    prettier插件对 .vue 文件格式化时,暂不能支持将 eslint规范应用到 js代码中。
    但是我们可以先将其格式化,然后利用 ESLint 保存文件时自动修复错误的特性,修复一些诸如 分号空格缩进 等错误。

参考资料:

VS Code使用之Vue工程配置ESLint

首先确保VS Code 安装了 VeturEslint 插件。
然后使用了vue-cli提供的简单webpack模板,这样创建的工程默认没有添加ESLint。

vue init webpack-simple test-vscode

配置过程

  1. 全局安装最新的eslint
npm i -g eslint@latest

运行

eslint --init

eslint-init

会安装以下依赖

eslint-config-standard@latest
eslint-plugin-import@>=2.2.0
eslint-plugin-node@>=5.2.1
eslint-plugin-promise@>=3.5.0
eslint-plugin-standard@>=3.0.0

同时在项目目录下生成.eslintrc.js文件。里面只有最基本的内容:

module.exports = {
    "extends": "standard"
};

表明我们使用的规则是standard规范所定义的规则。
2. 然后本地安装最新的eslint

npm i -D eslint@latest
  1. package.jsonscripts中添加一行:
 "lint": "eslint --ext .js,.vue src"

运行:

npm run lint

VS Code会提示我们找不到eslint-config-standard
报错提示

安装它:

npm i -D eslint-config-standard

然后运行

npm run lint

这时就会有报错的提示了。
lint_err
code_err

  1. 但是在.vue文件中出错的地方并没有相应的提示。这时Vetur排上用场了。 在VS Code的设置里面添加如下规则:
{
"eslint.validate": [
        "javascript",
        "javascriptreact",
       {  
            "language": "vue",
             "autoFix": true
        }
    ]
}

注意这里添加了 .vue 文件自动修复的规则,如果不添加这个规则,则保存时不会自动修复 .vue文件。
这样就添加了对.vue文件的支持。
5. 但是这样会对.vue文件中的标签报解析错误
parser_error

这时需要安装eslint-plugin-vue@next插件。

 npm install -D eslint-plugin-vue@next

同时在.eslintrc.js中添加使用vue插件的扩展。

// .eslintrc.js
module.exports = {
    "extends": [
           "standard",
           "plugin:vue/base"
      ]
}

这样,就可以对.vue文件提供实时检查的功能了。

  1. 对于多余的逗号这种错误,可以在保存的时候让eslint插件自动修复。 更改VS Code中的设置,添加如下规则:
{
  "eslint.autoFixOnSave": true
}

总结

通过使用VS Code的插件 VeturESLint来对Vue工程中的.vue提供代码检查的功能。

  • 需要安装的依赖:
     "eslint": "^4.14.0",
    "eslint-config-standard": "^11.0.0-beta.0",
    "eslint-plugin-import": "^2.8.0",
    "eslint-plugin-node": "^5.2.1",
    "eslint-plugin-promise": "^3.6.0",
    "eslint-plugin-standard": "^3.0.1",
    "eslint-plugin-vue": "^4.0.0-beta.4",
    注意: 这里 ESLinteslint-plugin-vue需要是最新的。
  • .eslintrc的配置
     module.exports = {
     "extends": [
         "standard",
         "plugin:vue/base"
     ]
     };
  • VS Code 的配置
      {
       "eslint.validate": [
        "javascript",
        "javascriptreact",
        {
            "language": "vue",
             "autoFix": true
        }
    ],
    "eslint.autoFixOnSave": true
      }

参考资料:
Vetur文档
ESLint文档
eslint-plugin-vue

算法学习之补全左括号

var pression = '12 + 2 ) * 333 - 4 ) * 5 - 6444 ) ) )'.split(' ');

var pressStack = [];
var opStack = [];

for (let i = 0; i < pression.length; i++) {
    if ('+-*/'.indexOf(pression[i]) !== -1) {
        opStack.push(pression[i]);
    } else if ( pression[i].match(/\d+/) ){
        pressStack.push(pression[i]);
    } else {
        let subPression = opStack.pop() + pressStack.pop() + ')';
        subPression = '(' + pressStack.pop() + subPression;
        pressStack.push(subPression);
    }
}

console.log(pressStack.join());

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.