カスタムマップを作成/フィルタ/縮小JavaScript、Pythonとルビーで
14642 ワード
新しい言語を学ぶとき、自分のスキルをテストしたり、関数や配列、関数として引数などとして機能するために、自分のマップ/フィルタ/reduce関数を作成するのが好きです.
だから今私はどのように私はすべてのJavascript
Pythonはほとんど同じで、ラムダ代わりに矢印関数を使用します
Rubyは少し異なっており、匿名関数のようなブロックを渡します.引数は
そして、それらはyield word
一般的に、私は新しいものを学ぶ楽しみがたくさんありました、そして、私はそれがあなたのコーディング技術を改善するためにするそのような素晴らしいことであると思います.
だから今私はどのように私はすべてのJavascript
// Map
function myMap(array,callback) {
newArray=[]
array.forEach(value => newArray.push(callback(value)))
return newArray
}
const transformed = myMap(["red","blue","purple"] , (color) => `Color ${color}`)
console.log(transformed)
//Filter
function myFilter(array,callback) {
newArray=[]
array.forEach(value => callback(value) && newArray.push(value))
return newArray
}
const filtered = myFilter([1,4,8,2,10,6] , number => number > 5)
console.log(filtered)
// Reduce
function myReduce(array,callback) {
let acc = 0
array.forEach(value => acc = callback(acc,value))
return acc
}
const reduced = myReduce([4,5,9,10] , (acc,current) => acc + current)
console.log(reduced)
今すぐPythonでそれをしましょうPythonはほとんど同じで、ラムダ代わりに矢印関数を使用します
# Map
def myMap(list,callback):
newList=[]
for item in list:
newList.append(callback(item))
return newList
transformed=myMap(["red","blue","purple"],lambda color: "Color " + color)
print(transformed)
#Filter
def myFilter(list,callback):
newList=[]
for item in list:
if callback(item) : newList.append(item)
return newList
filtered= myFilter([1,4,8,2,10,6],lambda number : number>5)
print(filtered)
#Reduce
def myReduce(list,callback):
acum=0
for el in list:
acum=callback(acum,el)
return acum
reduced = myReduce([4,5,9,10] , lambda current,actual:current+actual)
print(reduced)
現在ルビーRubyは少し異なっており、匿名関数のようなブロックを渡します.引数は
そして、それらはyield word
#Map
def myMap(array)
newarray=[]
for value in array do
result=yield(value)
newarray.push(result)
end
return newarray
end
transformed=myMap(["red","blue","purple"]) do | color | "Color #{color} " end
puts transformed.inspect
# Filter
def myFilter(array)
newarray=[]
for value in array do
newarray.push(value) if yield(value)
end
return newarray
end
filtered = myFilter([1,4,8,2,10,6]) do | number | number > 5 end
puts filtered.inspect
#Reduce
def myReduce(array)
acc = 0
for value in array do
acc = yield(acc,value)
end
return acc
end
reduced = myReduce([4,5,9,10]) do | acc,curr | acc+curr end
puts reduced.inspect
ここでは、それらのすべてが同じ結果を持っていることを示すイメージです一般的に、私は新しいものを学ぶ楽しみがたくさんありました、そして、私はそれがあなたのコーディング技術を改善するためにするそのような素晴らしいことであると思います.
Reference
この問題について(カスタムマップを作成/フィルタ/縮小JavaScript、Pythonとルビーで), 我々は、より多くの情報をここで見つけました https://dev.to/manuelmartindev/my-journey-learning-python-and-ruby-from-javascript-create-a-custom-map-filter-reduce-in-all-of-them-2miiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol