A K*_*A K 39 javascript python
我正在练习/学习JavaScript和Python.我想知道Javascript是否与这种类型的编码等效.
我基本上试图从字符串中的每个单独的整数中获取一个数组用于练习目的.我比Python更擅长Python
蟒蛇:
string = '1234-5'
forbidden = '-'
print([int(i) for i in str(string) if i not in forbidden])
Run Code Online (Sandbox Code Playgroud)
Javascript上面有类似的内容吗?
DRD*_*DRD 11
更新:从标准中删除了数组解析.引用MDN:
数组解析语法是非标准的,并从Firefox 58开始删除.对于面向未来的用法,请考虑使用Array.prototype.map,Array.prototype.filter,箭头函数和扩展语法.
原始答案:
是的,JavaScript将在即将发布的EcmaScript版本7中支持数组理解:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Array_comprehensions.
这是一个例子:数组理解.
var str = "1234-5";
var ignore = "-";
console.log([for (i of str) if (!ignore.includes(i)) i]);
Run Code Online (Sandbox Code Playgroud)
Col*_*ett 11
鉴于问题的 Python 代码
print([int(i) for i in str(string) if i not in forbidden])
Run Code Online (Sandbox Code Playgroud)
这是对 JavaScript (ES2015)最直接的翻译:
print([int(i) for i in str(string) if i not in forbidden])
Run Code Online (Sandbox Code Playgroud)
以下是所使用的 Python 和 JavaScript 代码元素的比较:(Python -> Javascript):
Array.filterArray.map阅读代码,我认为禁止可以有超过1个字符.我也假设输出应该是"12345"
var string = "12=34-5";
var forbidden = "=-";
console.log(string.split("").filter(function(str){
return forbidden.indexOf(str) < 0;
}).join(""))
Run Code Online (Sandbox Code Playgroud)
如果输出在单独的行上为"1""2""3""4""5"
var string = "12=34-5";
var forbidden = "=-";
string.split("").forEach(function(str){
if (forbidden.indexOf(str) < 0) {
console.log(str);
}
});
Run Code Online (Sandbox Code Playgroud)
不直接,但不难复制。
var string = "1234-5";
var forbidden = "-";
string.split("").filter(function(str){
if(forbidden.indexOf(str) < 0) {
return str;
}
}).forEach(function(letter) { console.log(letter);});
Run Code Online (Sandbox Code Playgroud)
我想更直接:
for(var i=0 ; i < str.length ; i++) {
if(forbidden.indexOf(str) < 0) {
console.log(str[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
但是没有内置的方法可以过滤您的for循环。
| 归档时间: |
|
| 查看次数: |
20927 次 |
| 最近记录: |