沼田的瀬戸際メモ(仮)

プログラミング超絶素人がプログラマの方達の宇宙語を理解するための備忘録的なメモ。

6月1日からビールが値上げだと...。そしていつもの動かないやつ

 大型スーパーがビールを大量に仕入れて安く売れるのに、

小さな個人商店はそれが出来ないから不公平である!ということで、改正酒税法なるものが成立し、6月1日に施行の流れらしいですね。従わないと当然行政指導の対象になります。まぁ瀬戸際の沼田はビール腹ですが、ビールは飲まないので懐は痛みませんが電気料金にバターにビールまで値上げとは世知辛いですなぁ...。

 

こんにちは。瀬戸際の沼田です。

 

今日はhtmlでボタンを作り、

「そのボタンを1回クリックするごとに異なるWebサイトに接続する」

というものを作ろうとしていましたが、ボタンはできたものの、クリックでWebサイトに接続するところができない...。うーむ...。

 

使おうとしているもの

・document.getElementById()
・addEventListener()
・window.location.href =

うーむ...引き続きやってみる。

 

佐藤琢磨の優勝を罵倒した記者さん...。そしてハンドスピナーが壊れとる!

佐藤琢磨が世界三大レースの一つ「インディ500」で日本人として初優勝しましたが、その優勝について、アメリカのデンバー・ポスト紙の記者が「とても不快だ」とTwitterに投稿してしまい解雇されたそうな。

まぁ、人種差別だ!って言われるよなぁ。勢いでTwitter書き込んじゃいましたか。しかし、次の日にクビとは...。

 

こんにちわ。瀬戸際の沼田です。

 

さて、いつでしたかこのブログでも触れたハンドスピナーですが、社内で3Dプリンターで試作した人がおりました。フィラメントはPLAだそう。

3週間くらいたちましたが、昨日破損してるのを発見!

f:id:aed2797:20170530190946j:plain

右側の輪っかが破損。

f:id:aed2797:20170530191001j:plain

こんな風に割れるのですねー。割り箸が折れた感じ。

といっても写真だとわかりにくいですが...。

練習で作ってみよう...。

 

今日より明日は改善するよう頑張っていきます(><)

祝! 佐藤琢磨、優勝。それと今日のメソッド

佐藤琢磨さん、インディ500で日本人初優勝とのこと。これはすごい!

こんにちは。瀬戸際の沼田です。

さて、今日のメドッドはハマったわけではないのですが、瀬戸際メモとして触れておきます。

reduceメソッド

構文
array1.reduce(callbackfn[, initialValue])

配列のすべての要素に対して、指定されたコールバック関数を呼び出す。コールバック関数の戻り値は累積結果であり、次のコールバック関数の呼び出しで引数として渡される。
reduce メソッド (Array) (JavaScript)より

reduceの後のコールバック関数にも構文があるのですね。

コールバック関数の構文

function callbackfn(previous, current, Index, array1)

previous:前のコールバック関数呼び出しで得られた値。 reduce メソッドに initialValue が渡された場合は、関数が初めて呼び出されるときに
previous が initialValue となる。

current:現在の配列の要素の値。

Index:現在の配列要素の数値インデックス。

array1:要素を格納している配列オブジェクト。


今日やりたいことは1〜10の配列を順番に足して和を表示したいので、以下のように書いてみる。
>/javascript/
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var result = array.reduce(function(previous, current) {
return previous + current
})
console.log(result)

//1から10までの和55を返してくれる。
//<

今日はめでたしめでたしなのですが、何度やってもはてな記法が↑のコードを認識してくれません。
なぜや...。明日また直してみよう...。

今日より明日は改善するよう頑張っていきます(><)

プレミアムフライデーとは何だったのか。そして今日ハマったコード達

今日はプレミアムフライデーですが、15時に帰ってる人などいるのです?もし居たらその人がプレミアム級に珍しいのではなかろうか。
消費を喚起したいなら今日だけ消費税無し!とかやりたまえ。そしたらプレミアムフライデーで1月分の肉を買い込んでやるわ。

こんにちは。瀬戸際の沼田です。

さて、今日はコードを書いていてハマったというか、新しく知ったJavaScriptメソッドについて書いていくよ。

今日ハマったメソッド(JavaScript)

今日はAIZU ONLINE JUDGEの下記問題を解いていました。(まだここです汗)
3つの数の整列 | プログラミング入門 | Aizu Online Judge


問題.
3つの整数を読み込み、それらを値が小さい順に並べて出力するプログラムを作成して下さい。

Input
3つの整数が空白で区切られて与えられます。

Output
小さい順に並べ替えた3つの整数を1行に出力して下さい。整数の間に1つの空白を入れて下さい。

Constraints
1 ≤ 3つの整数 ≤ 10,000

やっとこさ書いたコードがコチラ

'use strict'
process.stdin.resume()
process.stdin.setEncoding('utf8')
process.stdin.on('data', function hoge(input) {
  var arr = input.split(' ').map(Number)
  arr.sort(
    function(a, b) {
      return (a < b ? -1 : 1)
    }
  )
  console.log(arr.join(" "))
  return arr
})

んで出力はコレ
f:id:aed2797:20170526202136p:plain


数行なのですが、下記2種のメソッドの挙動を理解しておらず、とりま書いてみるべ状態でやっていたので、ハマったという。

起きた問題など

・onの中の関数とsplitを適用する関数を違う関数にしてしまう。
・出力を配列で出力してしまう。(joinメソッドの存在を知らなかった)
・return arrの後にconsole.log(arr)を書いてしまう。
etc...

split()に関しては、文字列をカンマとか半角スペースとか区切りたいときに使うやつや!ぐらいの認識でした...。

いけませんな。ということで、split()とjoin()についてまとめてみる。

文字列→配列のsplit()、配列→文字列のjoin()

split() メソッド

splitメソッドは、文字列を複数の部分文字列に区切ることにより、Stringオブジェクトを文字列の配列に分割する。
String.prototype.split() - JavaScript | MDNより

ちなみにsplitの後にある()内に記述する、ものをseparator(セパレータ)というらしい。下の例ではseparatorは半角スペースとかカンマになってます。

使ってみるとこんな感じでした。

var a = "1,2,3,4,5"
var array = a.split(" ")

これは、変数aを半角スペースで区切った配列としてね。という命令で、変数aに半角スペースが無いので、arrayは[ '1,2,3,4,5' ]という要素1つの配列になる。

var a = "1,2,3,4,5"
var array = a.split(",")

これは、変数aをカンマで区切った配列としてね。という命令で、変数aにカンマがあるので、arrayは[ '1', '2', '3', '4', '5' ]という要素5つの配列になる。

上記2つの違いを理解していなかったため、3時間近くハマっていました...。

join()メソッド

joinメソッドは、配列のすべての要素を繋いで文字列にする。
Array.prototype.join() - JavaScript | MDNより

これを知らなかったので、最後の出力の段階で出力が配列になっていて、AIZU ONLINE先生がAcceptしてくれないという。

使ってみるとこんな感じでした。

var a = ["1", "2", "3", "4", "5"]
var txt = a.join(",")

これは、変数aをカンマで区切った文字列としなさい。という命令で、txtは”1,2,3,4,5”という文字列になる。

やれやれ。

今日より明日は改善するように頑張っていきます(><)

「KAT-TUN」元メンバー田中聖容疑者、逮捕とな。それと最近思うこと。

田中聖(元KAT-TUN)が大麻所持の疑いで逮捕だって...。びっくりですな。

ですが、瀬戸際の沼田としては、仮想通貨のZcashチームとJPモルガンが連携するというニュースとその後の仮想通貨一帯の暴騰の方が驚きです。(後述します)

 

こんにちは。瀬戸際の沼田です。

 

さて、最近社内の色々な人からプログラミングについて助言等いただいてありがたいのですが、自戒の意味も込めて思うことを3つ挙げてみました。

 

1. 24時間以内に習ったコードやコマンドを自分で打たないと99%忘れる。

 これはプログラミングに限ったことではないかもしれませんが、コードをコピペして使う等やっても結局忘れます。現代の寺子屋的な感じで自分で書かないとダメですね。おっさんの辛いところ。

 ちなみに残り1%に該当するのは、Linuxコマンドの「pwd」のみでした。

2. ブログに習ったことをメモしてもその存在を忘れる。

 えーこれは↑結局1.に通じるのですが、このブログにメモしても残念ながら見返すことはありません。ハイ。でもこのブログは記録として書き続けます。

3. 詰まった時に調べ方がわからない。

 最近は脱してきましたが、自分が調べたいことが、関数なのかメソッドなのか、あるいは別の謎の何かなのかが区別できないと検索すらできませんね。この状態になったらググれカスと言われつつ、人に聞くのが◎。聞ける環境にあるのはとても恵まれております。

 

最近は、時間が取れているので、今のうちに一気に覚えないとですね。

さて、以後は雑記ですが、去年から注目していた仮想通貨について。

 

仮想通貨の値動きについて

冒頭でも書きましたが、5月23日にJPモルガンがZcashのチームと連携していくというニュースの前後で、仮想通貨周りは大きく値を上げました。

bitcoinlab.jp

 

以下はBitcoin(ビットコイン)、ETHEREUM(イーサリアム)、ETHEREUM Classic(イーサリアムクラシック、Ripple(リップル)そしてZcash(ゼットキャッシュ)のここ1週間のチャートになりますが、この状況でRIpple(リップル)のみ値を下げているのですねー。

 

f:id:aed2797:20170525190855p:plain

 

f:id:aed2797:20170525190912p:plain

 

f:id:aed2797:20170525191009p:plain

 

f:id:aed2797:20170525191047p:plain

 

f:id:aed2797:20170525191110p:plain

 

今後もこの傾向が続くのでしょうか。このブログでも注視していきたいものです。

今日より明日は改善するように頑張っていきます(><)

携帯ドコモにしてもいいですね。それとmap()メソッドを使ってみる。

ドコモが来月発売の2機種を新規に購入した利用者を対象として、一律で月額1500円の値下げをするらしい。高校生から使っていたドコモに戻してみようかな。

こんにちは。瀬戸際の沼田です。

谷村奈南さんが結婚したそうな。それと3の倍数のときだけ「あほ」を表示するプログラム - 沼田的瀬戸際メモ(仮)
この記事でやった3のときのみ「あほ」を出力するというのをmap()メソッドを使ってやってみました。

map()メソッドを使ってみる。

さてmap()メソッドというものは、

「与えたれた関数を配列のすべての要素について呼び出して、その結果から新しい配列を生成する。」
参考ページ:Array.prototype.map() - JavaScript | MDN

ちなみに、配列とは[]で囲った文字列のことです。

んでやってみたのがこちら

var aho = [1,2,3,4,5,6]
var aho2 = aho.map(function(x){
  if (x%3==0) {
    return "あほ"
  } else {
    return x
  }
})
console.log(aho2)

やっていることは、
変数 ahoを[1,2,3,4,5,6]と定義

変数ahoに対してmapメソッドにより、1から順番に呼び出して新しい配列を作る

mapメソッドによって出来た新しい配列を変数 aho2と名付ける。

ただし、if文で3の倍数時のみアホと出力する。
というもの。実行するとこんな感じ。
f:id:aed2797:20170524193838p:plain

今日より明日は改善するように頑張っていきます(><)

Ariana Grande(アリアナグランデ)さんコンサートで爆発とな。それと、alert関数、confirm関数について

アメリカの人気歌手のAriana Grande(アリアナグランデ)さんのコンサート会場で爆発があり、現在のところ22人が亡くなっているそうですね。現場となったのはイギリス中部のマンチェスター中心部にあるマンチェスターアリーナで、テロの可能性もあるようで...。これ以上の犠牲がでないようお祈りすると共に、犠牲となった方々に心よりお悔やみ申し上げます。

こんにちは瀬戸際沼田です。

何だか悲しいニュースからのスタートになってしまいました...。ここのところ欧州では、テロが続いていますね。

さて、今日はalert関数の練習していました。
今日いちで苦労したのは、Macでバックスラッシュ\をだす方法でした(ネタではありません)
MacBook Airを使っていますが、\ボタンないやん...。
f:id:aed2797:20170523190343j:plain

調べてみると、

バックスラッシュの出し方はoption + ¥

忘れないようメモメモ。

alert関数でダイアログを表示してみる

まずは、Webページ上で.jsファイルを実行できるようにして...

<html>

<head>
  <meta charset="utf-8">
  <title="沼練習0522"></title>
</head>

<body>
  <script src="0522alert.js"></script>

</body>

</html>

んでalert関数を使う...。と

文字を入れたいとき:ダブルクォーテーション"かシングルクォーテーション'の中に書く。
文字の改行をしたいとき:\nを入れて、+でつなぐ。

下記の様に書くと、横書きと縦書きの2回アラートを出すことができました。

console.log("OK")
alert("瀬戸際の沼田アラート成功")
alert("瀬\n" + "戸\n" + "際\n" + "の\n" + "沼\n"+ "田\n"+ "ア\n"+ "ラ\n"+ "|\n"+ "ト\n"+ "成\n"+ "功\n")

実行するとこんな感じに。
横書きと
f:id:aed2797:20170523184718p:plain

縦書き...と。
f:id:aed2797:20170523184725p:plain

confirm関数で「OK」「Cancel」を選択できるダイアログボックスを表示してみる

アラートダイアログで「OK」と「Cancel」を選べるようにConfirm関数も使ってみる。
「OK」を選んだときに、変数aにTrue、「Cancel」を選んだときに変数aにfalseが入る、という書き方のようです。
あとはif文のルール通りにTrueのときの処理とfalseのときの処理を書けばよい...と。今回は表示されるalertが異なるようにしてみます。

console.log("OK")
var a = confirm("横書きがいいならOKを押したまえ")
if (a) {
 alert("瀬戸際の沼田アラート成功")
} else {
  alert("では縦書きをくらえ\n" + " \n"+ "瀬\n" + "戸\n" + "際\n" + "の\n" + "沼\n"+ "田\n"+ "ア\n"+ "ラ\n"+ "|\n"+ "ト\n"+ "成\n"+ "功\n")
}

まず初めにOKとCanselの分岐をして、
f:id:aed2797:20170523193633p:plain

で、OKのときは、、、
f:id:aed2797:20170523193703p:plain

Cancelのときは、、、
f:id:aed2797:20170523193724p:plain

出来ました!!

実はテキストを入力させるprompt関数というのもあるようですが、それはまた今後。
今日はこちらのサイトにとても助けられました。
JavaScriptでダイアログを表示:alert(), confirm(), prompt | UX MILK

今日より明日は改善するように頑張っていきます(><)