是否存在与此Python字符串切片方法等效的JavaScript?
s1 = 'stackoverflow'
print s1[1:]
# desired output
tackoverflow
var s2 = "stackoverflow";
/* console.log(s2.slice(1,)); this code crashes */
console.log(s2.slice(1, -1));
/* output doesn't print the 'w' */
tackoverflo
答案 0 :(得分:4)
只需使用s2.slice(1)
而不使用逗号。
答案 1 :(得分:2)
或者您可以使用substr
s2 = s1.substr(1);
答案 2 :(得分:2)
Array和String的原型在javascript中有函数slice
,演示如下:
'1234567890'.slice(1,-1); //字符串 '1234567890'.split('')。slice(1,-1); //数组
但slice
没有名为step
的参数。我们应该为它制作一个包装器。
在Python中,我们使用像这样的切片:
a = '1234567890';
a[1:-1:2];
这是一个像python这样的包装器,我写的名为slice.js的项目,它在js中启用python-slice,包括step
。
npm i --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'
答案 3 :(得分:1)
只需更改
console.log(s2.slice(1,-1));
的
console.log(s2.slice(1,s2.length));
您可以查看有关MDN
的更多信息
var s2 = "stackoverflow";
alert(s2.slice(1, s2.length));

答案 4 :(得分:1)
Slice是Python令人敬畏的负面工具的JavaScript实现 数组和字符串的索引和扩展切片语法。它使用ES6 代理以实现直观的双括号索引语法, 紧密复制在Python中如何构造切片。哦,那 也附带了Python的range方法的实现!
我知道一个可以解决这个确切问题的软件包。
它叫做
您可以从字面上使用数组和字符串进行操作,就像在Python中一样。
要安装此软件包:
yarn add slice
// or
npm install slice
查看→ the docs ←了解更多信息。