JavaScript 相当于 python 字符串切片
JavaScript equivalent of python string slicing
是否有 JavaScript 等同于此 Python 字符串切片方法?
>>> 'Whosebug'[1:]
'tackoverflow'
我试过:
// this crashes
console.log("Whosebug".slice(1,));
// output doesn't print the last letter 'w'
console.log("Whosebug".slice(1, -1));
// tackoverflo
只需使用不带逗号的 s2.slice(1)
。
或者你可以使用 substr
s2 = s1.substr(1);
只是改变
console.log(s2.slice(1,-1));
为了
console.log(s2.slice(1,s2.length));
您可以在 MDN
上查看更多信息
var s2 = "Whosebug";
alert(s2.slice(1, s2.length));
见Array.prototype.slice
and String.prototype.slice
。
'1234567890'.slice(1, -1); // String
'1234567890'.split('').slice(1, -1); // Array
但是,Python 个切片有步骤:
'1234567890'[1:-1:2]
但是*.prototype.slice
没有step
参数。为了解决这个问题,我写了 slice.js
。安装:
npm install --save slice.js
用法示例:
import slice from 'slice.js';
// for array
const arr = slice([1, '2', 3, '4', 5, '6', 7, '8', 9, '0']);
arr['2:5']; // [3, '4', 5]
arr[':-2']; // [1, '2', 3, '4', 5, '6', 7, '8']
arr['-2:']; // [9, '0']
arr['1:5:2']; // ['2', '4']
arr['5:1:-2']; // ['6', '4']
// for string
const str = slice('1234567890');
str['2:5']; // '345'
str[':-2']; // '12345678'
str['-2:']; // '90'
str['1:5:2']; // '24'
str['5:1:-2']; // '64'
切片
Slice is a JavaScript implementation of Python's awesome negative
indexing and extended slice syntax for arrays and strings. It uses ES6
proxies to allow for an intuitive double-bracket indexing syntax which
closely replicates how slices are constructed in Python. Oh, and it
comes with an implementation of Python's range method too!
我知道一个解决这个问题的软件包。
叫做
您可以 字面意思 处理数组和字符串,无论您在 python 中做什么。
安装这个包:
yarn add slice
// or
npm install slice
简单用例
查看 → the docs ← 了解更多信息。
如果您需要步骤参数,这里有一个解决方案
Array.prototype.slice_ = function(start,end,step=1) {
return this.slice(start,end)
.reduce((acc, e, i) => i % step == 0
? [...acc, e]
: acc, []);
}
console.log([1,2,3,4,5,6,7,8,9,10].slice_(1, 10, 2))
是否有 JavaScript 等同于此 Python 字符串切片方法?
>>> 'Whosebug'[1:]
'tackoverflow'
我试过:
// this crashes
console.log("Whosebug".slice(1,));
// output doesn't print the last letter 'w'
console.log("Whosebug".slice(1, -1));
// tackoverflo
只需使用不带逗号的 s2.slice(1)
。
或者你可以使用 substr
s2 = s1.substr(1);
只是改变
console.log(s2.slice(1,-1));
为了
console.log(s2.slice(1,s2.length));
您可以在 MDN
上查看更多信息var s2 = "Whosebug";
alert(s2.slice(1, s2.length));
见Array.prototype.slice
and String.prototype.slice
。
'1234567890'.slice(1, -1); // String
'1234567890'.split('').slice(1, -1); // Array
但是,Python 个切片有步骤:
'1234567890'[1:-1:2]
但是*.prototype.slice
没有step
参数。为了解决这个问题,我写了 slice.js
。安装:
npm install --save slice.js
用法示例:
import slice from 'slice.js';
// for array
const arr = slice([1, '2', 3, '4', 5, '6', 7, '8', 9, '0']);
arr['2:5']; // [3, '4', 5]
arr[':-2']; // [1, '2', 3, '4', 5, '6', 7, '8']
arr['-2:']; // [9, '0']
arr['1:5:2']; // ['2', '4']
arr['5:1:-2']; // ['6', '4']
// for string
const str = slice('1234567890');
str['2:5']; // '345'
str[':-2']; // '12345678'
str['-2:']; // '90'
str['1:5:2']; // '24'
str['5:1:-2']; // '64'
切片
Slice is a JavaScript implementation of Python's awesome negative indexing and extended slice syntax for arrays and strings. It uses ES6 proxies to allow for an intuitive double-bracket indexing syntax which closely replicates how slices are constructed in Python. Oh, and it comes with an implementation of Python's range method too!
我知道一个解决这个问题的软件包。
叫做
您可以 字面意思 处理数组和字符串,无论您在 python 中做什么。
安装这个包:
yarn add slice
// or
npm install slice
简单用例
查看 → the docs ← 了解更多信息。
如果您需要步骤参数,这里有一个解决方案
Array.prototype.slice_ = function(start,end,step=1) {
return this.slice(start,end)
.reduce((acc, e, i) => i % step == 0
? [...acc, e]
: acc, []);
}
console.log([1,2,3,4,5,6,7,8,9,10].slice_(1, 10, 2))