- 1. Blobとencoding.jsでシフトJIS CSVを出力する
- 2. Google Apps Script(Gas)でスプレッドシートの操作
- 3. ワインのデータをスクレイピングする(Vivino編)
- 4. アスペクト比を固定したまま画像のサイズをフレームに合わせる
- 5. あなたの知っているJavaScriptはもう古い(書き方編 -その1- )
- 6. 【基礎】discord.js v13 でボットを作る ~コマンド発展~
- 7. 【学習記録⑧】動的コンポーネントを用いてコンポーネントを入れかえる。
- 8. React-Native でBlockchain SymbolのSDKを利用する
- 9. あなたの知っているJavaScriptはもう古い(概要編)
- 10. 【学習記録⑦】slotを用いてコンポーネント間でデータの受け渡しを行う。
- 11. ThreeJSでローカルファイルを読み込む
- 12. JavaScriptのプロトタイプ継承について(2)
- 13. +で型を数値型に無理やり変換してisNaNで制御
- 14. Ruby での JavaScript の圧縮を Uglifier から Terser に変えた
- 15. 【Vue.js】算出プロパティとメソッドの比較
- 16. [JavaScript] 配列 (Arrayクラス) チートシート
- 17. 【学習記録⑥】$emitを用いて子コンポーネントから親コンポーネントへ値を渡す。
- 18. 【基礎】discord.js v13 でボットを作る ~コマンド作成~
- 19. React: State オブジェクトの一部を更新したい場合の記述法(useState Hooksを用いて)
- 20. 【基本】discord.js v13 でボット作成
Blobとencoding.jsでシフトJIS CSVを出力する
CSV出力時に、「どうしてもSJIS(シフトJIS)で出力したいの」というときはありませんか?
文字化け防止のためだけならBOM付きUTF-8でええんやで…という情報を目にしつつ、
出力したCSVを受け付けるシステム側が「SJISでないとだめよ」という仕様だったため、SJISでCSV出力する仕組みを作りました。間違いの箇所があればコメントいただけると幸いです。
# 作ったもの
## :one: 概要
TypeScript + Node.js にて作り、kintoneの該当アプリに適用しました。
今回はkintoneに関するイベント処理は省きます。### 準備
* encoding.js
* File-Saver
* JSZip
* dayjs*SJIS変換のために [encoding.js](https://github.com/polygonplanet/encoding.js/blob/master/README_ja.md) を用いました。
*複数CSVをまとめて出力するため、JSZipにてzip化しました。
*zip化したファイルを、File-Saverで名称
Google Apps Script(Gas)でスプレッドシートの操作
皆さまこんにちは。
gasはgoogle提供サービスとの連携が得意だそうです!
今回はgasを用いてのスプレッドシート操作の基本について簡単にまとめました。[1.操作するスプレッドシートをgasに教えてあげる](#操作したいスプレッドシートの指定)
[2.範囲指定と値の取得](#範囲指定と値の取得)
[3.最終行(列)番号取得](#最終行(列)番号取得)
[4.値の書き込み](#値の書き込み)##操作するスプレッドシートをgasに教えてあげる
まずはこれですね。“`javascript:test.gas
function myFunction() {
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
}“`
**SpreadsheetApp.getActiveSpreadsheet()**でアクティブなスプレッドシートを取得します。
取得したスプレッドシートに対して、色々な処理を行っていく事になります。アクティブなスプレッドシートとはスクリプトと紐づいているスプレッドシートのことです。
スプ
ワインのデータをスクレイピングする(Vivino編)
僕は今まで自分が飲んだワインの情報をメモしています。
そして、一時期に週2くらいで飲んでいたときに、そのメモを取るのがめんどくさくなったので、一気にワインの情報を集められるようにスクリプトを作成しました。そして、このスクリプトで取得したデータをGoogle Spreadsheetに貼り付けて、以下のように管理しています。
![20211021_01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265324/cc795536-99a4-6cca-c1ac-68610f0aea61.jpeg)
という冒頭で前回のvinica編もお届けしましたが、今回は、Vivinoというサイトで取得するスクリプトを紹介します。なぜ、Vivinoを使ったかというと、vinicaに取得したかったワインがなかったのです・・・。
このスクリプトは開発者ツールで実行します。
今回使ったワインのページは、[ここ](https://www.vivino.com/kanonkop-pinotage/w/56164?year=2
アスペクト比を固定したまま画像のサイズをフレームに合わせる
以下の図のように画像のアスペクト比を固定したままフレームにフィットさせたいことがよくあります.
その時にフレームサイズとイメージサイズを入力,フィットさせるときのイメージサイズを出力とするアルゴリズムのメモです.![Screenshot from 2021-10-24 02-08-36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/589906/04ab1b9a-1af3-e2f8-480b-72aa48b58103.png)
### Input
入力はフレームのサイズとイメージのサイズで以下の様になります.
frame_w, frame_h, image_w, image_h
### Output
出力は新しいイメージのサイズです.
new_image_w, new_image_h
### アルゴリズム
フィットする画像サイズを取得する,JavaScriptの関数は以下のようになります.
“`javascript:fit_image.js
function fit_image(
あなたの知っているJavaScriptはもう古い(書き方編 -その1- )
## 私の知っているJavaScriptはもう古い
下記の記事をかいたように、JavaScriptの時代の流れについていけなかった私、、、。
そこで今回は今の時代はどんなふうにJavaScriptをかけばいいの?っていうことを学んで行こうとおもいます!https://qiita.com/k-tetsuhiro/items/fd50feeee323e08e8349
## 知っている書き方
10年前のJavaScriptしか知らなかった私、、、。もし同じような方がいればこういった書き方を過去していたと思います。“`example.js
// 名前を定義する
var name = “タロウ”;// 名前を返す
function get_name(){
return name;
}
“`し か し !!
**もうこの書き方では通用しません**(反省)そこで、最近(ES2015以降)では下記のような記述をしていいきます。
※ES2015ってなに?って方は[こちら](https://qiita.com/k-tetsuhiro/items/fd50feeee32
【基礎】discord.js v13 でボットを作る ~コマンド発展~
## 前書き
[前回](https://qiita.com/hitori_yuu/items/3b6c02fac5c610f0615a) はコマンドを作成しました。
今回はそのコマンドに情報を入れたり、コマンドを個々のファイルに分けたりしたいと思います。##開発環境
[前回](https://qiita.com/hitori_yuu/items/3b6c02fac5c610f0615a) と変わりません* Windows10
* npm 7.6.3
* node 17.0.1 (最小要件:16.6.0)
* discord.js 13.2.0## コーディング
[前回](https://qiita.com/hitori_yuu/items/3b6c02fac5c610f0615a) 作成したファイル(`deploy-commands.js`)の`commands`の部分を下記のものに書き換え + 書き加えます。“`diff_javascript:deploy-commands.js
– const { SlashCommandBuilder } = require(‘
【学習記録⑧】動的コンポーネントを用いてコンポーネントを入れかえる。
#はじめに
Vue.jsを最近勉強し始めたので学んだ文法などを備忘録としてメモしていこうと思います。
今回の記事では`動的コンポーネント`を用いてコンポーネントを入れかえる方法を記載します。##componentタグを利用する
動的にコンポーネントを入れかえる場合は`component`タグを用いると便利です。
記法は以下の通りで`is`という属性を用いて任意のコンポーネントを指定します。https://jp.vuejs.org/v2/guide/components.html#%E5%8B%95%E7%9A%84%E3%81%AA%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88
“`vue:App.vue
“`###注意点
しかしながらコンポーネントを入れかえた際に切り替わる前のデータは消えてしまうため、フォームに使用するタグ`input`や`t
React-Native でBlockchain SymbolのSDKを利用する
https://jp.symbolplatform.com/
iOS,Androidアプリにブロックチェーンの機能を追加したいと思い、ブロックチェーンSymbolを選定し開発を開始しました。SymbolのSDKはJavascript/Typescriptが用意されていますが、そのままではReactNative環境では動かすことが出来ず、以下に対応したことを纏めます
モバイルアプリにブロックチェーンを組み込んでいきましょう
# 環境
– ReactNative@0.64.2
– Expo@43.0.0
– Symbol-SDK@1.0.1
– Windows10(Macの方は適宜読替下さい)https://github.com/symbol/symbol-sdk-typescript-javascript
# Expoでプロジェクトを作成(or React-Native-CLI)
Expoでプロジェクトを作成し、Ejectします。EjectせずにExpoのまま実行しようとしても、linkが実行出来ないので失敗します。“`console
expo init symbol_
あなたの知っているJavaScriptはもう古い(概要編)
## はじめに
JavaScriptは年々進化している、、、。もしかして私の知ってるJavaScriptってもう古い?!
ってことで、最近ずっとフロントエンドに関わる機会がなかったので改めて勉強してみました!## あなたの時代のjavascriptは?
私がJavaScriptを書いていたころは約10年前(2011年あたり)で、当時は**jQuery使うと便利だよね〜**みたいな時代でした。そこから10年たったいま、、、**React?Vue.js?ES2015?webpacker?Babel?**なんじゃそりゃーっていうギャップが生まれている状態です(反省)。そこで今回は表面だけでもいいから**概要だけでも知っておく**のが目的になります。## モダンなJavaScriptは昔のJavaScriptと何が違うのか
では、昔と今では何がちがうのか?
いくつかポイントをまとめてみました!### ◇ ReactやVueという便利なライブラリ/フレームワークがある
名前だけはきいたことある人もおおいとおもいます。これを使えば圧倒的開発がしやすいです。
**PHPでいえばLara
【学習記録⑦】slotを用いてコンポーネント間でデータの受け渡しを行う。
#はじめに
Vue.jsを最近勉強し始めたので学んだ文法などを備忘録としてメモしていこうと思います。
[前々回の学習記録記事](https://qiita.com/Ooooooomin_365/items/7449f72409bf6d00f475)、および[前回の学習記録記事](https://qiita.com/Ooooooomin_365/items/63eef765efc78672714e)では`props`や`$emit`を用いて親子のコンポーネント間でデータの受け渡しをしていましたが、今回の記事では`slot`や`slotProps`を用いてデータの受け渡しを行っていこうと思います。##slotを用いてHtmlを子コンポーネントへ渡す
`props`では特定の値などを子コンポーネントへ渡していましたが`slot`を用いるとHtmlを子コンポーネントに渡すことができます。“`vue:親.vue
おはようボタン
ThreeJSでローカルファイルを読み込む
ThreeJSでローカルにある3Dファイルを読み込みたい。もっとも、[そのようなサイト自体はGitHubで探せばいくらでもある](https://github.com/mrdoob/three.js/tree/master/editor)わけなのだが、大量にあるソースコードを読むことも面倒くさい。ということで、方法を自分用メモとしてまとめておく。
##方法1(サーバー側にアップロード)
選択されたファイルをサーバーにアップロードする。これが絶対手っ取り早いし、面倒なことを考えなくても良い(ただしアップロードしたファイルの配置場所や削除までの時間、読み込みまでの時間等の考慮は必要)ので、楽。
とはいえ、サーバー側の通信やストレージに不安がある場合、PHP等が利用できない場合などは、ローカルで処理したい。方法2以降はそのためのメモである。##方法2(読み込むファイルが1つの場合)
読み込むファイルが1つの場合は、非常に単純である。`FileReader.readAsDataURL()`を使うなり、`URL.createObjectURL()`を使うなりして、URLを生成し、`new
JavaScriptのプロトタイプ継承について(2)
#prototypeについて
前回の記事で`__proto__`を利用することでgiraffのプロトタイプにanimal をセットしanimalのプロパティを見つけることができることが確認できました。([前回の記事](https://qiita.com/tomoki12/items/ee88145e3f3ff92ba45a)))
しかし、コンストラクター関数を利用した別の方法で同じことを実現できます。“`JS:JS
let animal = {
eats: true
};
// let giraff = {
// neck: “long”
// };function Giraff(length) {
this.neck = length
}Giraff.prototype = animal;
let giraff = new Giraff(‘long’) // giraff.__proto__ = animal;
console.log(giraff.neck); // =>long
console.log(giraff.eats); // =
+で型を数値型に無理やり変換してisNaNで制御
# 変数の前に+を書くことで数字になる
“`javascript
const number123 = 123;
typeof(number123); // number
const string123 = “123”;
typeof(string123); // string
const hoge = “hoge”
typeof(hoge); // string
“`
変数の前に+を書くことで、`string123`は数値(`123`)になり、`hoge`は`NaN`になる。“`javascript
const changeString123 = +string123;
typeof(changeString123); // number
console.log(changeString123); // 123const changeHoge = +hoge
typeof(changeHoge); // number
console.log(changeHoge); // NaN
“`# 数字か文字列かはisNaN()で判断
“`javascript
isNaN
Ruby での JavaScript の圧縮を Uglifier から Terser に変えた
# はじめに
JavaScript を Ruby で圧縮したい。
こういう処理はフレームワーク側でやってくれるので,あまり意識することはないと思うが,たとえば静的サイトを生成するプログラムを自分で書く場合,やり方を知らなければならない。# 定番 Uglifier
従来,こういう目的には [Uglifier](https://github.com/lautis/uglifier) という gem がよく使われてきた。
執筆時点の最新版は 4.2.0 なので,本記事もこれを前提とする。
使い方は超簡単で,
“`rb
require “uglifier”puts Uglifier.compile(<<~JS) function average(numbers) { return numbers.reduce( function(sum, number) { return sum + number }, 0 ) / numbers.length } JS ``` とすれば圧縮された ``` function average
【Vue.js】算出プロパティとメソッドの比較
#はじめに
こんにちは!
今回は【Vue.js】算出プロパティとメソッドの違いについてアウトプットしていきます!#算出プロパティとメソッドの違いとは
**算出プロパティとメソッドの違いは3点あります。**
①算出プロパティ cpmputed ・・・ ()不要
メソッド methods・・・ ()必要②getter,setter
・cpmputed・・・getter,setterが必要
・methods・・・getterのみ必要③キャッシュ
・cpmputed・・・される
・methods・・・されない#書き方・解説
##①プロパティとメソッド“`HTML:HTML
{{ reversedMessage }}
{{ reversedMessageMethod() }}
“`
“`Vue.js
data: {
message: ‘Hello Vue.js!’
},
computed: {
[JavaScript] 配列 (Arrayクラス) チートシート
## はじめに
– JavaScriptとArrayクラスと仲良くなったので、チートシートとして便利な機能を紹介します。
– 本記事に書いてあることは、[**MDNのArrayクラスの記事**](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array)に詳細が書いてあります。
– 気になる方はそちらを参照ください。 :stars:## チートシート
– 参考までに個人的な使用頻度を:three:段階で設定してみました。
#### 配列の基本
|名前|使用頻度|概要|
|—|—|—|
|[length](#length)|★★★|配列内の要素数を取得する|
|[Array.isArray()](#arrayisarray)|★|配列か判定する|
|[Array.from()](#arrayfrom)|★|配列風、または反復可能オブジェクトから新しいArrayインスタンスを生成する|
|[Array.of()](#arrayof)|★|可変個の引数から、引
【学習記録⑥】$emitを用いて子コンポーネントから親コンポーネントへ値を渡す。
#はじめに
Vue.jsを最近勉強し始めたので学んだ文法などを備忘録としてメモしていこうと思います。
[前回の学習記録記事](https://qiita.com/Ooooooomin_365/items/7449f72409bf6d00f475)では親コンポーネントから子コンポーネントへ値を渡す処理を書きましたが、今回の記事では逆に子コンポーネントから親コンポーネントへ値を渡す処理を書いていこうと思います。##サンプルコード
前回まではそれぞれの挨拶ボタンをクリックすると「おはよう~!」「こんにちは~!」「こんばんは~!」等の挨拶アラートが出力されていましたが、今回はそれぞれの「メッセージ変更」ボタンを作成し、それをクリックすることで挨拶アラート文が変更されるものとします。以下は「おはよう」アラートを返却するコンポーネントです。
$emitの第一引数に任意の名前を付け、第二引数へ親コンポーネントへ渡す値を記載します。“`vue:Morning.vue
関連する記事
OTHERカテゴリの最新記事
-
- 2024.09.19
JavaScript関連のことを調べてみた
-
- 2024.09.19
JAVA関連のことを調べてみた
-
- 2024.09.19
iOS関連のことを調べてみた
-
- 2024.09.19
Rails関連のことを調べてみた
-
- 2024.09.19
Lambda関連のことを調べてみた
-
- 2024.09.19
Python関連のことを調べてみた