uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 418
Obunachilar
-224 soatlar
-37 kunlar
-630 kunlar
Postlar arxiv
ToCode
1 418
ืžื” ืžื•ื“ื“ื™ื ื‘ื”ืชืœื‘ื˜ื•ืช ื‘ื™ืŸ ืฉื ื™ ืงื•ืจืกื™ื ื™ืฉ ื“ื‘ืจื™ื ืฉืžืื•ื“ ืงืœ ืœืžื“ื•ื“: ืืคืฉืจ ืœื”ืฉื•ื•ืช ืืช ืื•ืจืš ื”ืงื•ืจืกื™ื, ืืช ื”ืžื—ื™ืจ, ืืช ื”ืžื—ื™ืจ ืœืฉืขื”, ืืคืฉืจ ืœื”ืกืชื›ืœ ืขืœ ืขื‘ื•ื“ื•ืช ืฉืœ ื‘ื•ื’ืจื™ื ืื—ืจื™ื ื•ืœืžื“ื•ื“ ื›ืžื” ื”ืคืจื•ื™ืงื˜ ื ืจืื” ืžืขื ื™ื™ืŸ ื•ืืคื™ืœื• ืืคืฉืจ ืœื”ืฉื•ื•ืช ื›ืžื” ืชืืจื™ื ืื• ื›ืžื” ืฉื ื•ืช ื ื™ืกื™ื•ืŸ ื™ืฉ ืœืžืจืฆื™ื. ืื‘ืœ ืืช ื”ื“ื‘ืจื™ื ืฉื—ืฉื•ื‘ ืœืžื“ื•ื“ ื”ืจื‘ื” ื™ื•ืชืจ ืงืฉื” ืœื–ื”ื•ืช: ื—ืฉื•ื‘ ืœืžื“ื•ื“ ื›ืžื” ืžื•ื˜ื™ื‘ืฆื™ื” ื”ืงื•ืจืก ื™ื™ืชืŸ ืœื™ ื›ื“ื™ ืœื”ืžืฉื™ืš ืœืœืžื•ื“ ื’ื ืื—ืจื™ื•. ื—ืฉื•ื‘ ืœืžื“ื•ื“ ื›ืžื” ืžื”ืจ ื”ืงื•ืจืก ื™ืืคืฉืจ ืœื™ ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“ ืœื‘ื“, ื•ื›ืžื” ืจื—ื•ืง ืื•ื›ืœ ืœื”ื’ื™ืข ื‘ืขื–ืจืช ื”ืจืขื™ื•ื ื•ืช ื•ื”ืขืงืจื•ื ื•ืช ืฉืืœืžื“ ืฉื. ื—ืฉื•ื‘ ืœืžื“ื•ื“ ื›ืžื” ื’ื‘ื•ื” ื”ืกื™ื›ื•ื™ ืฉืœื™ ืœืžืฆื•ื ืขื‘ื•ื“ื” ืื—ืจื™ ื”ืงื•ืจืก ื•ื”ืื ื”ืžืจืฆื™ื ื‘ืืžืช ื™ื•ื›ืœื• ืœื”ื‘ื™ืŸ ืืช ื”ืžืฆื‘ ืฉืœื™ ื•ืœืชืช ืœื™ ืขืฆื•ืช ืจืœื•ื•ื ื˜ื™ื•ืช ืขื‘ื•ืจื™. ื‘ืฉื‘ื™ืœ ืœืžื“ื•ื“ ืืช ื”ื“ื‘ืจื™ื ื”ื—ืฉื•ื‘ื™ื ืœื ืžืกืคื™ืง ืœื”ืกืชื›ืœ ื‘ืกื™ืœื‘ื•ืก - ืฆืจื™ืš ืžืžืฉ ืœื“ื‘ืจ ืขื ื”ืžืจืฆื™ื ื•ืขื ื‘ื•ื’ืจื™ื, ืœื”ืฉืชืชืฃ ื‘ืฉื™ืขื•ืจื™ ื ื™ืกื™ื•ืŸ ื•ืื•ืœื™ ืืคื™ืœื• ืœืœืžื•ื“ ืžืจืืฉ ื‘ื‘ื™ืช ื›ื“ื™ ืœื”ื’ื™ืข ืขื ืžืกืคื™ืง ืจืงืข ื•ืœืฉืื•ืœ ืืช ื”ืฉืืœื•ืช ื”ื ื›ื•ื ื•ืช. ืจืง ื‘ื’ืœืœ ืฉืงืœ ืœืžื“ื•ื“ ืžืฉื”ื• ืœื ืื•ืžืจ ืฉื”ื•ื ื ื•ืชืŸ ืื™ื ื“ื™ืงืฆื™ื” ื˜ื•ื‘ื” ืœื”ืฆืœื—ื”.

ToCode
1 418
ื•ืืคืฉืจ ืœืจืื•ืช ืืช ื”ืชื•ืฆืื” ื‘ืงื™ืฉื•ืจ: https://ynonp.github.io/echarts-birth-demo/ ื•ื’ื ืืช ืงื•ื“ ื”ืคืจื•ื™ืงื˜ ื”ืžืœื ื‘ื’ื™ื˜ื”ืื‘: https://github.com/ynonp/echarts-birth-demo ืžืขื‘ืจ ืœื ื•ื—ื•ืช ื”ืขื‘ื•ื“ื” ืขื echarts, ื“ื•ื’ืžื” ื–ื• ื”ื–ื›ื™ืจื” ืœื™ ื›ืžื” ืงืœ ืœื›ืชื•ื‘ ื”ื™ื•ื ืืชืจ ืกื˜ื˜ื™ ื‘ืœื™ ืฉืœื‘ ื‘ื ื™ื™ื” ื•ืœืื—ืกืŸ ืื•ืชื• ืขืœ Github Pages. ื‘ื–ื›ื•ืช ื”ืชืžื™ื›ื” ื”ืžื•ื‘ื ื™ืช ื‘ ES Modules ื•ื‘ื˜ืขื™ื ืช ืงื‘ืฆื™ JSON ืžืชื•ืš ES Modules ืื ื—ื ื• ืžืงื‘ืœื™ื ื‘ื—ื™ื ื ื”ืจื‘ื” ืžื”ื“ื‘ืจื™ื ื‘ืฉื‘ื™ืœื ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ื‘ืขื‘ืจ ืฉืœื‘ ื‘ื ื™ื™ื”.

ToCode
1 418
ื“ื•ื’ืžืช Echarts - ื ื™ืชื•ื— ื ืชื•ื ื™ ืœื™ื“ื•ืช ืกืคืจื™ื™ืช Echarts ื ื•ืชื ืช ื“ืจืš ืงืœื” ืžืื•ื“ ืœื™ืฆื•ืจ ืชืจืฉื™ืžื™ื ื•ื’ืจืคื™ื ื‘ Web. ื‘ืฉื™ืœื•ื‘ ืขื ืžืื’ืจ ื”ื ืชื•ื ื™ื ื”ื™ืฉืจืืœื™ ื”ืžืžืฉืœืชื™ ืืคืฉืจ ืœื”ืชื ืกื•ืช ื‘ืงืœื•ืช ื‘ื ื™ืชื•ื— ื ืชื•ื ื™ื ื•ืฉื™ืžื•ืฉ ื‘ื’ืจืคื™ื. ื”ื ื” ื“ื•ื’ืžื” ืงืฆืจื” ืขื ืงื•ื‘ืฅ ืฉืœ ื ืชื•ื ื™ ืœื™ื“ื•ืช ืฉืœืงื—ืชื™ ืžื”ืงื™ืฉื•ืจ ื”ื–ื”: https://data.gov.il/dataset/birth-data ืื™ืš ื ืจืื” ื”ืžื™ื“ืข ืžืื’ืจ ื”ื ืชื•ื ื™ื ื›ื•ืœืœ ืงื•ื‘ืฅ CSV ืฉืžื›ื™ืœ ืืช ื”ืขืžื•ื“ื•ืช: ื—ื•ื“ืฉ ืœื™ื“ื”, ื’ื™ืœ ื”ืื, ืžืกืคืจ ืขื•ื‘ืจื™ื, ืฉื‘ื•ืข ืœื™ื“ื”, ืžื™ืŸ ื”ืชื™ื ื•ืง ื•ืžืฉืงืœ. ื™ืฉ ืคื” ื”ืจื‘ื” ืขื ืžื” ืœืขื‘ื•ื“ ื•ืื ื™ ื‘ื—ืจืชื™ ื‘ืฉื‘ื™ืœ ื”ื“ื•ื’ืžื” ืœื‘ื ื•ืช ื’ืจืฃ ืขืžื•ื“ื•ืช ืฉื™ืจืื” ืืช ื”ืชืคืœื’ื•ืช ื”ื’ื™ืœืื™ื ืฉืœ ื”ื™ื•ืœื“ื•ืช ื‘ื›ืœ ื—ื•ื“ืฉ ื‘ืฉื ืช 2014 (ืœื” ืžืชืื™ื ื”ืงื•ื‘ืฅ). ื‘ืฉื‘ื™ืœ ืœืขื‘ื•ื“ ืขื ื”ื ืชื•ื ื™ื ื”ืชื—ืœืชื™ ืขื ื”ืกืคืจื™ื” csvkit ืฉืœ ืคื™ื™ืชื•ืŸ ื•ื”ืคื›ืชื™ ืืช ืงื•ื‘ืฅ ื”ื ืชื•ื ื™ื ืœ JSON ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื”:
in2csv --encoding "utf-8" births.csv | csvjson > births.json
ืืœื” ืฉืœื•ืฉืช ื”ืื•ื‘ื™ืงื˜ื™ื ื”ืจืืฉื•ื ื™ื ืžื”ืงื•ื‘ืฅ ื‘ืฉื‘ื™ืœ ื”ื“ื•ื’ืžื”:
[
  {
    "birth_month": 1.0,
    "mother_age": "<18",
    "parity": "1",
    "gestation_week": "37-41",
    "birth_sex": "F",
    "birth_weight": "2500-2599"
  },
  {
    "birth_month": 1.0,
    "mother_age": "<18",
    "parity": "1",
    "gestation_week": "37-41",
    "birth_sex": "F",
    "birth_weight": "2500-2599"
  },
  {
    "birth_month": 1.0,
    "mother_age": "<18",
    "parity": "1",
    "gestation_week": "37-41",
    "birth_sex": "F",
    "birth_weight": "2500-2599"
  }
]
ื”ื›ื ืช ื”ื ืชื•ื ื™ื ืœื’ืจืฃ ืขื›ืฉื™ื• ืื ื—ื ื• ืžื’ื™ืขื™ื ืœื—ืœืง ื”ืžืขื ื™ื™ืŸ ื•ืฆืจื™ื›ื™ื ืœืืจื’ืŸ ืืช ื”ืžื™ื“ืข ื›ืš ืฉื™ืชืื™ื ืœ ECharts. ืื ื™ ืจื•ืฆื” ืœื”ืฆื™ื’ ื’ืจืฃ ืขืžื•ื“ื•ืช ืžืื•ื–ืŸ. ื‘ื’ืจืฃ ืขืžื•ื“ื•ืช ืคืฉื•ื˜ ืื ื—ื ื• ืžืฆื™ื’ื™ื ืขืจื›ื™ื ืžืชื•ืš ืกื™ื“ืจื” ื›ืœื•ืžืจ ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืจืฉื™ืžื” ืฉืœ ืžืกืคืจื™ื. ืื ื™ ืจื•ืฆื” ืœื”ืฆื™ื’ ื‘ื›ืœ ืขืžื•ื“ื” ืืช ื”ืœื™ื“ื•ืช ืžื—ื•ืœืงื•ืช ืœืคื™ ื’ื™ืœ ื”ืื, ื•ืœื›ืŸ ืื—ืœืง ืืช ื”ื ืชื•ื ื™ื ืœืžืกืคืจ ืจืฉื™ืžื•ืช, ืจืฉื™ืžื” ืœื›ืœ ืงื‘ื•ืฆืช ื’ื™ืœืื™ื:
const dataByAge = _.chain(data).groupBy('mother_age').mapValues(
  row => _.chain(row).groupBy('birth_month').mapValues(v => v.length).value()
).value()

const series = _.toPairs(dataByAge).map(([mother_age, entries]) => ({
    name: mother_age,
    type: "bar",
    stack: "total",
    label: {
      show: true,
    },
    emphasis: {
      focus: "series",
    },
    data: Object.values(entries),
  })
)
ื”ืชื•ืฆืื” ื”ื™ื ืจืฉื™ืžื” ืฉืœ ืื•ื‘ื™ืงื˜ื™ื, ื›ืœื•ืžืจ ืฉืœ ืกื“ืจื•ืช, ื›ืืฉืจ ืฉื ื›ืœ ืกื™ื“ืจื” ื”ื•ื ืงื‘ื•ืฆืช ื”ื’ื™ืœืื™ื ืฉืœ ื”ืื ื•ื”ืขืจื›ื™ื (ื‘ืžืคืชื— data) ื”ื ืจืฉื™ืžื” ื‘ื” ื›ืœ ืื™ื‘ืจ ื”ื•ื ืžืกืคืจ ื”ืœื™ื“ื•ืช ื‘ืงื‘ื•ืฆืช ื”ื’ื™ืœ ื”ื ืชื•ื ื” ื‘ื—ื•ื“ืฉ ืื—ืจ, ื›ืœื•ืžืจ ื”ืื™ื‘ืจ ื”ืจืืฉื•ืŸ ื”ื•ื ื›ืžื” ืœื™ื“ื•ืช ื”ื™ื• ื‘ื™ื ื•ืืจ ื‘ืงื‘ื•ืฆืช ื’ื™ืœ ื–ื•, ืื—ืจื™ ื–ื” ื›ืžื” ืœื™ื“ื•ืช ื”ื™ื• ื‘ืคื‘ืจื•ืืจ ื•ื›ืš ื”ืœืื”. ืกื™ื›ื•ื ื•ื”ืงื•ื“ ื”ืžืœื ืงื•ื“ ื” JavaScript ื”ืžืœื ืœืฆื™ื•ืจ ื”ื’ืจืฃ ื”ื•ื:
import data from './births.json' with { type: "json" };
import _ from 'https://cdn.jsdelivr.net/npm/lodash@4.17.21/+esm'

window.data = data;
const months = {
  1: 'January',
  2: 'February',
  3: 'March',
  4: 'April',
  5: 'May',
  6: 'June',
  7: 'July',
  8: 'August',
  9: 'September',
  10: 'October',
  11: 'November',
  12: 'December'
};

var dom = document.getElementById("chart-container");
var myChart = echarts.init(dom, null, {
  renderer: "canvas",
  useDirtyRect: false,
});
var app = {};
var option;

const dataByAge = _.chain(data).groupBy('mother_age').mapValues(
  row => _.chain(row).groupBy('birth_month').mapValues(v => v.length).value()
).value()

const series = _.toPairs(dataByAge).map(([mother_age, entries]) => ({
    name: mother_age,
    type: "bar",
    stack: "total",
    label: {
      show: true,
    },
    emphasis: {
      focus: "series",
    },
    data: Object.values(entries),
  })
)

option = {
  tooltip: {
    trigger: "axis",    
    axisPointer: {
      // Use axis to trigger tooltip
      type: "shadow", // 'shadow' as default; can also be 'line' or 'shadow'
    },
  },
  legend: {},
  grid: {
    left: "3%",
    right: "4%",
    bottom: "3%",
    containLabel: true,
  },
  xAxis: {
    type: "value",
  },
  yAxis: {
    type: "category",
    data: Object.values(months),
  },
  series: series,
};

if (option && typeof option === "object") {
  myChart.setOption(option);
}

window.addEventListener("resize", myChart.resize);

ToCode
1 418
ื›ืฉื”ืฉืคื” ืขื•ื‘ื“ืช ืืชืš - ืคื™ืชืจื•ืŸ Advent Of Code 2024 ื™ื•ื ืจืืฉื•ืŸ ื‘ Ruby ื”ืื™ื“ืื•ืœื•ื’ื™ื” ืฉืœ ืจื•ื‘ื™ ื”ื™ื ืœืชืช ืœืžืชื›ื ืชื™ื ืฉืคื” ืฉืคืฉื•ื˜ ื™ืฉ ื‘ื” ื”ื›ืœ, ื›ื™ ืชื›ืœ'ืก ื™ื•ืชืจ ื›ื™ืฃ ืœื”ืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื” ืžื•ื‘ื ื™ืช ื‘ืฉืคื” ืžืืฉืจ ืœื”ืขืชื™ืง ืžื™ืžื•ืฉ ืžืฉืขืžื ืž Chat GPT. ื”ื ื” ืฉืชื™ ื“ื•ื’ืžืื•ืช ืžืคื™ืชืจื•ืŸ ื”ื™ื•ื ื”ืจืืฉื•ืŸ ืฉืœ Advent Of Code ื”ืื—ืจื•ืŸ ืœืคื•ื ืงืฆื™ื•ืช ืฉืงืฉื” ืœืžืฆื•ื ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื. ื—ืœืง 1 - ื”ืคื•ื ืงืฆื™ื” transpose ื”ืงืœื˜ ืฉืœ ื”ื—ืœืง ื”ืจืืฉื•ืŸ ื‘ืชืจื’ื™ืœ ืžื•ืจื›ื‘ ืžืฉื ื™ ื˜ื•ืจื™ื:
3   4
4   3
2   5
1   3
3   9
3   3
ื•ื”ืžืฉื™ืžื” ืฉืœื ื• ื”ื™ื ืœืžื™ื™ืŸ ื›ืœ ื˜ื•ืจ ื‘ื ืคืจื“ ื•ืื– ืœื”ืชืื™ื ืืช ื”ืžืกืคืจื™ื ืžื”ื˜ื•ืจ ื”ืฉืžืืœื™ ืœื˜ื•ืจ ื”ื™ืžื ื™ ืžื”ืงื˜ืŸ ืœื’ื“ื•ืœ ื‘ืฉื ื™ ื”ื˜ื•ืจื™ื, ื•ื‘ืกื•ืฃ ืœืžืฆื•ื ืืช ื”ื”ืคืจืฉ ื‘ืขืจืš ืžื•ื—ืœื˜ ืฉืœ ื›ืœ ื–ื•ื’. ืœื“ื•ื’ืžื” ื”ืžืกืคืจ ื”ืงื˜ืŸ ื‘ื™ื•ืชืจ ื‘ื˜ื•ืจ ื”ืฉืžืืœื™ ื”ื•ื 1 ื•ื”ืงื˜ืŸ ื‘ื™ื•ืชืจ ื‘ื˜ื•ืจ ื”ื™ืžื ื™ ื”ื•ื 3 ื•ืœื›ืŸ ื ืชืื™ื ืืช ืื—ื“ ืœ-3 ื•ื ืงื‘ืœ ืฉื”ื”ืคืจืฉ ื”ื•ื 2. ืื ืชืžืฉื™ื›ื• ืืช ื–ื” ืœื›ืœ ื”ืžืกืคืจื™ื ื•ืชืกื›ืžื• ืืช ื”ื”ืคืจืฉื™ื ืชื’ื™ืขื• ืœ 11. ื”ืืชื’ืจ ื‘ื—ืœืง ื”ื–ื” ื”ื•ื ืฉืฉืคื•ืช ืชื›ื ื•ืช ื‘ื“ืจืš ื›ืœืœ ื ื•ืชื ื•ืช ืœื ื• ืœืงืจื•ื ืงืœื˜ ื‘ืฉื•ืจื•ืช, ื•ืงืœ ืœื”ืคืขื™ืœ split ืขืœ ืฉื•ืจืช ืงืœื˜ ื‘ืฉื‘ื™ืœ ืœื—ืœืง ืื•ืชื” ืœืžืขืจืš ืœืคื™ ื”ืจื•ื•ื—ื™ื - ืื‘ืœ ืื™ืš ืขื•ืฉื™ื ืืช ื–ื” ืขืœ ืขืžื•ื“ื”? ื”ืคื•ื ืงืฆื™ื” transpose ืฉืœ ืžืขืจืš ื‘ืจื•ื‘ื™ ืžืฆื™ืขื” ืคื™ืชืจื•ืŸ ืงืœ, ื–ื” ื”ืงื•ื“:
filename = ARGV[0]
left, right = File.foreach(filename).map(&:split).transpose

left = left.map(&:to_i).sort
right = right.map(&:to_i).sort

puts (left.each_with_index.map do |value, index|
  (value - right[index]).abs
end).sum
ืคื•ื ืงืฆื™ื™ืช transpose ืœื•ืงื—ืช ืžืขืจืš ืฉืœ ื–ื•ื’ื•ืช ื•ื”ื•ืคื›ืช ืื•ืชื• ืœืฉืชื™ ืจืฉื™ืžื•ืช, ื”ืจืฉื™ืžื” ื”ืจืืฉื•ื ื” ืฉืœ ื›ืœ "ื”ืจืืฉื•ื ื™ื" ื•ื”ืจืฉื™ืžื” ื”ืฉื ื™ื™ื” ืฉืœ ื›ืœ "ื”ืฉื ื™ื™ื". ื‘ืคื•ืขืœ ืงืจื™ืืช ื”ืงื•ื‘ืฅ ืœืฉื ื™ ื˜ื•ืจื™ื ื”ื™ื ื‘ืกืš ื”ื›ืœ ื”ืฉื•ืจื”:
left, right = File.foreach(filename).map(&:split).transpose
ื—ืœืง 2 - ื”ืคื•ื ืงืฆื™ื” tally ื”ืคื•ื ืงืฆื™ื” ื”ืฉื ื™ื” ืœืคื•ืกื˜ ื ืงืจืืช tally ื•ื”ื™ื ืžืชื•ื“ื” ืฉืœ ืžืขืจืš ืฉืžื—ื–ื™ืจื” hash ืขื ืžืกืคืจ ื”ืžื•ืคืขื™ื ืฉืœ ื›ืœ ืื™ื‘ืจ ื‘ืžืขืจืš. ื”ื™ื ืงื™ื™ืžืช ื’ื ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื ืื‘ืœ ืงืฆืช ื™ื•ืชืจ ืงืฉื” ืœื”ื’ื™ืข ืืœื™ื” ืฉื, ืœื“ื•ื’ืžื” ื‘ืคื™ื™ืชื•ืŸ ื”ื™ื ื ืงืจืืช Counter ืฉืžื•ืจื” ื‘ืžื•ื“ื•ืœ ื ืคืจื“. ื‘ JavaScript ื›ื‘ืจ ื ืฆื˜ืจืš ืืช lodash ื‘ืฉื‘ื™ืœ ื–ื” (ืื• ืœื›ืชื•ื‘ ืžืฉื”ื• ืœื‘ื“). ื‘ื—ืœืง ื”ืฉื ื™ ืฉืœ ื”ืชืจื’ื™ืœ ื”ืชื‘ืงืฉื ื• ืœื›ืคื•ืœ ื›ืœ ืžืกืคืจ ืžื”ื˜ื•ืจ ื”ืฉืžืืœื™ ื‘ืžืกืคืจ ื”ืคืขืžื™ื ืฉื”ื•ื ืžื•ืคื™ืข ื‘ื˜ื•ืจ ื”ื™ืžื ื™. ื–ื” ื”ืงื•ื“ ืขื tally:
filename = ARGV[0]
left, right = File.foreach(filename).map {it.split.map(&:to_i)}.transpose
count = right.tally

puts (left.map do |value|
  value * count.fetch(value, 0)
end).sum
ื”ืคืขื ื‘ื’ืœืœ ืฉืœื ื”ื™ื” ืžื™ื•ืŸ ื”ืขื‘ืจืชื™ ืืช to_i ืคื ื™ืžื” ืœืฉื•ืจืช ื”ืงืจื™ืื” ื™ื—ื“ ืขื ื” split, ื•ื”ืฉืชืžืฉืชื™ ื‘ื›ืชื™ื‘ ื” it ื”ื—ื“ืฉ ืฉืœ ืจื•ื‘ื™ 3.4.

ToCode
1 418
ื—ื™ื“ืช Vue ืžืฉืชื ื™ื ืจื™ืืงื˜ื™ื‘ื™ื™ื ื ืชื•ืŸ ืงื•ื“ Vue ื”ื‘ื:
<script setup>
import { ref } from 'vue'
const init = {count: 0}
const item = ref(init)

function inc() { item.value.count++ }
function reset() { item.value = init }
</script>

<template>
  <p>{{ item.count }}</p>
  <button @click="inc">+1</button>
  <button @click="reset">Reset</button>
</template>
ืžืฉืชืžืฉ ืœื•ื—ืฅ ื›ืžื” ืคืขืžื™ื ืขืœ ื›ืคืชื•ืจ ื”ืคืœื•ืก ื•ืื– ืขืœ ื›ืคืชื•ืจ ื” Reset. ื”ืื ื”ืขืจืš ื‘ืชื™ื‘ื” ืžืชืืคืก? ืœืžื”? ื•ื›ืŸ ื”ื›ื ืชื™ ืœื›ื ืืช ื–ื” ื›ื‘ืจ ื‘ืœื™ื™ื‘ ืฉืชื•ื›ืœื• ืœื‘ื“ื•ืง ื›ืืŸ: ื“ื•ื’ืžืช ืœื™ื™ื‘ ื”ืกื‘ืจ ื”ื›ืคืชื•ืจ ืœื ืžืืคืก ืืช ื”ืขืจืš, ืื• ื™ื•ืชืจ ื ื›ื•ืŸ ื”ื•ื ืžืืคืก ืื‘ืœ ืœื ืœืขืจืš ืฉืจืฆื™ื ื•. ื–ื” ืžื” ืฉืงื•ืจื”: 1. ืคืงื•ื“ืช ื” ref ื™ื•ืฆืจืช ืงื™ืฉื•ืจ ืœ"ื“ื‘ืจ" ืฉื”ื™ื ืงื™ื‘ืœื” ื‘ืกื•ื’ืจื™ื™ื. ืžืื—ืจ ื•ื”ื“ื‘ืจ ื”ื–ื” ื”ื•ื ืื•ื‘ื™ืงื˜ ื™ื”ื™ื” ืœื ื• ืคืจื•ืงืกื™ ืฉืžื—ื–ื™ืง ืื•ื‘ื™ืงื˜, ืื‘ืœ ื”ื”ืขืชืงื” ื”ื™ื ืฉื˜ื—ื™ืช. 2. ืฉื™ื ื•ื™ ื”ืขืจืš ืฉืœ item ื”ื•ื ื‘ืขืฆื ืฉื™ื ื•ื™ ื”ืขืจืš ืฉืœ init, ื›ื™ item ื”ื•ื ื‘ืกืš ื”ื›ืœ ืคืจื•ืงืกื™ ืจื™ืืงื˜ื™ื‘ื™ ืœ init. 3. ื›ืฉืœื•ื—ืฆื™ื ืื™ืคื•ืก ื”ืขืจืš ืฉืœ init ืžื•ืขืชืง ืœ item, ืื‘ืœ ื–ื” ื‘ืกืš ื”ื›ืœ ื”ืขืชืงื” ืฉืœ ืžืฉืชื ื” ืœืขืฆืžื• ื•ืœื›ืŸ ื”ืขืจืš ืฉืœ item ืœื ืžืฉืชื ื”. ื–ื” ืžื‘ืœื‘ืœ ื›ื™ ื”ืจื‘ื” ืคืขืžื™ื ืื ื—ื ื• ืžืคืขื™ืœื™ื ืืช ref ืขืœ ืžืกืคืจื™ื ืื• ืžื—ืจื•ื–ื•ืช. ืฉื ื”ืขืชืงื” ืฉื˜ื—ื™ืช ื™ื•ืฆืจืช ืขื“ื™ื™ืŸ ืขื•ืชืง ืฉืœ ืื•ืชื• ืžืกืคืจ ืื• ืžื—ืจื•ื–ืช ื•ืœื›ืŸ ืฉื™ื ื•ื™ ืฉืœ item ืœื ื™ืฉืคื™ืข ืขืœ init, ื›ืœื•ืžืจ ืงื•ื“ ื›ื–ื” ื™ืขื‘ื•ื“ ื‘ืœื™ ื‘ืขื™ื”:
const init = 0;
const count = ref(init);

function inc() { count.value++ }
function reset() { count.value = init }
ืžืกื™ื‘ื” ื–ื• ืื’ื‘ ืื ื™ ืžืขื“ื™ืฃ ืœื”ืฉืชืžืฉ ื‘ reactive ืขืœ ืื•ื‘ื™ืงื˜ื™ื ื• ref ืขืœ ืžืฉืชื ื™ื ืคืฉื•ื˜ื™ื. ื”ื”ื‘ื“ืœ ื‘ืฉื ื’ื ืจื•ืžื– ืขืœ ื”ื”ื‘ื“ืœ ื‘ืžืฉืžืขื•ืช. ื‘ื›ืœ ืžืงืจื” ืคื™ืชืจื•ืŸ ืงืœ ืœืกื™ื˜ื•ืืฆื™ื” ืื—ืจื™ ืฉื”ื‘ื ื• ืžื” ืงื•ืจื” ื•ืื ืื™ ืืคืฉืจ ืœืขื‘ื•ืจ ืœืžืฉืชื ื™ื ืคืฉื•ื˜ื™ื ื”ื•ื ืœื”ืขืชื™ืง ืืช ื”ืื•ื‘ื™ืงื˜ ืœืคื ื™ ืฉืžืคืขื™ืœื™ื ref ื›ืœื•ืžืจ (ื‘ื”ื ื—ื” ืฉืื™ืŸ ืคื•ื ืงืฆื™ื•ืช ื‘ืื•ื‘ื™ืงื˜):
import { ref } from 'vue'
const init = {count: 0}
const item = ref(JSON.parse(JSON.stringify(init)));

function inc() { item.value.count++ }
function reset() { item.value = init }
ืื• ืื ืืคืฉืจ ืขื“ื™ืฃ ืœื”ื—ืœื™ืฃ ืืช init ื‘ืคื•ื ืงืฆื™ื” ืฉืžื—ื–ื™ืจื” ืืช ื”ืขืจืš ื”ืจืืฉื•ื ื™ ื•ื›ื›ื” ืืชื ืžื‘ื˜ื™ื—ื™ื ืฉืืฃ ืคืขื ืœื ืชืฉื ื• ืืช ื”ืขืจืš ื”ืจืืฉื•ื ื™:
import { ref } from 'vue'
const init = () => ({count: 0})
const item = ref(init());

function inc() { item.value.count++ }
function reset() { item.value = init() }

ToCode
1 418
ืžื‘ื—ืŸ ื” ack ืื—ื“ ื”ืืชื’ืจื™ื ื‘ืคื™ืชื•ื— ืชื•ื›ื ื” ืฉืืคืฉืจ ื™ื”ื™ื” ืœืชื—ื–ืง ืื•ืชื” ื”ื•ื ืฉืื ื—ื ื• ืœื ื™ื•ื“ืขื™ื ืžืจืืฉ ืื™ื–ื” ืฉืืœื•ืช ื™ืขืœื• ื‘ืขืชื™ื“ ื•ืื™ื–ื” ืฉื™ื ื•ื™ื™ื ื ืฆื˜ืจืš ืœื”ื›ื ื™ืก ื‘ืงื•ื“. ืื ื—ื ื• ื’ื ืœื ื™ื•ื“ืขื™ื ืžื™ ื™ื’ื™ืข ืœืงืจื•ื ืืช ื”ืงื•ื“, ื›ืžื” ื–ืžืŸ ื™ื”ื™ื” ืœื• ืื• ืœื” ื•ืžื” ืชื”ื™ื” ืžื˜ืจืชื. ื›ืชื™ื‘ืช ืงื•ื“ ื”ื™ื ืžืชื ื” ืฉืื ื—ื ื• ื ื•ืชื ื™ื ืœืขืชื™ื“ ื‘ืชื ืื™ื ืฉืœ ืื™ ื•ื•ื“ืื•ืช, ื‘ืœื™ ืœื“ืขืช ืžื” ื™ื”ื™ื” ืื•ืชื• ืขืชื™ื“. ื•ืœืžืจื•ืช ื›ืœ ืื™ ื”ื•ื•ื“ืื•ืช ื”ื–ืืช ื™ืฉ ื›ืžื” ื“ื‘ืจื™ื ืฉืืคืฉืจ ืœื ื—ืฉ: ืืคืฉืจ ืœื ื—ืฉ ืฉืžื™ ืฉื™ื’ื™ืขื• ืœืชื—ื–ืง ืืช ื”ืงื•ื“ ืื• ืœืชืงืŸ ื‘ืื’ ื™ื“ืขื• ืขืœ ื”ืžืขืจื›ืช ื”ืจื‘ื” ืคื—ื•ืช ืžืžื” ืฉืืชื ื™ื•ื“ืขื™ื ืขื›ืฉื™ื• ื•ืฉื™ื”ื™ื” ืœื”ื ื”ืจื‘ื” ืคื—ื•ืช ื–ืžืŸ ืื• ืžื•ื˜ื™ื‘ืฆื™ื” ืžืžื” ืฉื™ืฉ ืœื›ื ืขื›ืฉื™ื•. ื”ื ืจืง ื‘ืื• ืœื‘ื“ื•ืง ืื• ืœืชืงืŸ ืžื ื’ื ื•ืŸ ืฉืืžื•ืจ ืœืขื‘ื•ื“, ื•ื™ืฉ ืœื”ื ืฆืจื•ืช ื™ื•ืชืจ ื’ื“ื•ืœื•ืช ืฉืœ ื”ืขืชื™ื“. ื˜ืจื™ืง ืื—ื“ ืฉืœ ื”ืชื—ืฉื‘ื•ืช ืฉืื ื™ ืื•ื”ื‘ ืœื™ื™ืฉื ื”ื•ื ืžื‘ื—ืŸ ื” ack, ื•ื–ื” ืื•ืžืจ ืฉืชื”ื™ื” ืœื™ ืžื™ืœื” ืื—ืช ืžืจื›ื–ื™ืช ื‘ืคื™ืฆ'ืจ ืฉืชื—ื–ื•ืจ ืขืœ ืขืฆืžื” ื‘ื›ืœ ื”ืžืงื•ืžื•ืช ืฉื”ืคื™ืฆ'ืจ ื”ื–ื” ื ื•ื’ืข ื‘ื”ื ื•ื›ืš ืืคืฉืจ ื™ื”ื™ื” ืœืงื‘ืœ ืชืžื•ื ืช ืžื‘ื˜ ืขืœ ืฉืœ ื”ืคื™ืฆ'ืจ ื’ื ื›ืฉืžื’ื™ืขื™ื ืจืง ืœืชืงืŸ ื‘ืื’ ืื• ืœื‘ื“ื•ืง ืžืฉื”ื•. ืœื“ื•ื’ืžื” ืื ืื ื™ ื‘ื•ื ื” ืคื™ืฆ'ืจ ืฉืœ ื”ืคืงืช ืชืขื•ื“ื•ืช ืœืงื•ืจืกื™ื ืื– ืื ื™ ื™ื›ื•ืœ ืœื”ืชื—ื™ืœ ืขื ืžื™ืœื” ืฉืงืฉื•ืจื” ืœืชืขื•ื“ื•ืช ื›ืžื• certificate ื•ืœื”ืžืฉื™ืš ืื™ืชื” ื‘ืฉืžื•ืช ืฉืœ ืžื—ืœืงื•ืช ืื• ืคื•ื ืงืฆื™ื•ืช, ื•ื›ื›ื” ื ืงื‘ืœ ืฉืžื•ืช ื›ืžื•: 1. CertificatesController 2. CertificatesListView 3. isCertificateReady 4. certificateStatus 5. UserInfoForCertificate ื”ืื ื˜ื™ ืชื‘ื ื™ืช ื›ืืŸ ื”ื™ื ืœื”ื™ื•ืช ื™ืฆื™ืจืชื™ื™ื ื•ืœื”ืฉืชืžืฉ ื‘ืื•ืฆืจ ืžื™ืœื™ื ืžื’ื•ื•ืŸ ืžื“ื™, ืœืžืฉืœ ืื ืื ื™ ื›ื•ืชื‘ ืคื•ื ืงืฆื™ื” ืฉืชื‘ื“ื•ืง ืื ืžืฉืชืžืฉ ืกื™ื™ื ืงื•ืจืก ืื ื™ ืœื ืืจืฆื” ืœืงืจื•ื ืœื” isGraduated (ืœืžืจื•ืช ืฉื‘ืžืงื•ืžื•ืช ืื—ืจื™ื ื–ื” ืื•ืœื™ ืฉื ื˜ื•ื‘) ื•ืขื“ื™ืฃ ืœื‘ื—ื•ืจ ืžืฉื”ื• ืฉืžื›ื™ืœ ืืช ืžื™ืœืช ื”ืžืคืชื— ืฉืœื™ ืœืžืฉืœ isCertificateEligible. ืืœ ืชืคื—ื“ื• ืœื”ื™ืขื–ืจ ื‘ Chat GPT ื›ื“ื™ ืœืžืฆื•ื ืฉืžื•ืช ืžืชืื™ืžื™ื ืœืžื™ืœืช ืžืคืชื— ืฉื‘ื—ืจืชื.

ToCode
1 418
ืื ื™ ืขื•ื“ ืืชื’ืขื’ืข ืœ Facade ืชื‘ื ื™ืช ื”ืขื™ืฆื•ื‘ Facade ื”ื™ื ืื•ื‘ื™ืงื˜ ืฉื ืžืฆื ืœืคื ื™ ืกืคืจื™ื” ืื—ืจืช ื•ืžืกืชื™ืจ ื”ืชื ื”ื’ื•ืช ืžืกื•ื‘ื›ืช ืื• ืžื•ืจื›ื‘ืช ื™ื•ืชืจ. ื”ืžื˜ืจื” ื”ืžืจื›ื–ื™ืช ืฉืœ Facade ื”ื™ื ืœืืคืฉืจ ืœื ื• ืœื›ืชื•ื‘ ืงื•ื“ ื™ื•ืชืจ ืงืฆืจ ืื• ืงืจื™ื, ืื• ืœืชืช ืคื™ืชืจื•ืŸ ืœ Use Case ืžืกื•ื™ื ืฉื‘ื• ืœื ืฆืจื™ืš ืืช ื›ืœ ื”ืžื•ืจื›ื‘ื•ืช ืฉืœ ืกืคืจื™ื” ืื—ืจืช. ืœื“ื•ื’ืžื” ื‘ืคื™ื™ืชื•ืŸ ื”ืกืคืจื™ื” requests ืขื•ื˜ืคืช ืืช ืžืžืฉืง ื”ืชืงืฉื•ืจืช ืฉืœ ื”ืฉืคื” ื•ืžืกืคืงืช ื“ืจืš ืงืœื” ื™ื•ืชืจ ืœืžืฉื•ืš ืžื™ื“ืข ืžื”ืจืฉืช. ื™ืฉ ืœื” ื’ื ื™ื•ืชืจ ืคื™ืฆ'ืจื™ื ื›ืžื•ื‘ืŸ. ื‘ื™ืงืฉืชื™ ืžื”ื‘ื•ื˜ ืชื•ื›ื ื™ื•ืช ื“ื•ื’ืžื” ืขื ื•ื‘ืœื™ requests ื•ื–ื” ืžื” ืฉืงื™ื‘ืœืชื™, ืชื•ื›ื ื™ืช ืจืืฉื•ื ื” ื‘ืœื™ requests ืจืง ืคื™ื™ืชื•ืŸ:
import urllib.request
import json

def get_data_using_urllib():
    url = "https://api.example.com/data"

    # 1. Create a request object (so you can set headers if you need)
    req = urllib.request.Request(url, headers={"Accept": "application/json"})

    try:
        # 2. Open the URL
        with urllib.request.urlopen(req) as response:
            # 3. Check the status code
            if response.status == 200:
                # 4. Read and parse JSON data
                raw_data = response.read()
                data = json.loads(raw_data)
                print("Data fetched using urllib:", data)
            else:
                print(f"Error: status code = {response.status}")
    except Exception as e:
        print("An error occurred:", e)

if __name__ == "__main__":
    get_data_using_urllib()
ืชื•ื›ื ื™ืช ืฉื ื™ื” ืขื requests:
import requests

def get_data_using_requests():
    url = "https://api.example.com/data"

    try:
        # 1. Make a GET request
        response = requests.get(url)

        # 2. Raise an exception if the status is not 2xx
        response.raise_for_status()

        # 3. Parse JSON in one step
        data = response.json()
        print("Data fetched using Requests:", data)

    except requests.exceptions.RequestException as e:
        print("An error occurred:", e)

if __name__ == "__main__":
    get_data_using_requests()
ืื—ืœื” ืคืกืื“ื” ื ื›ื•ืŸ? ืื– ืœืžื” ืฉื ืชื’ืขื’ืข ืืœื™ื”? ืื ื™ ื—ื•ืฉื‘ ืฉื–ื• ืืฉืžืช ืื•ืชื• ื‘ื•ื˜ ื‘ื“ื™ื•ืง ืฉื™ืฆืจ ืืช ืฉืชื™ ื”ืชื•ื›ื ื™ื•ืช. ืื ืคืขื ื”ื”ืชืœื‘ื˜ื•ืช ืœื’ื‘ื™ ื›ืชื™ื‘ืช ืื‘ืกื˜ืจืงืฆื™ื” ื—ื“ืฉื” ื”ืชืจื›ื– ื‘ืขืœื•ืช ืฉืœ ืคื™ืชื•ื— ืื•ืชื” ืื‘ืกื˜ืจืงืฆื™ื” (ืชื—ื–ื•ืงื”, ืฉื™ื“ืจื•ื’ ื›ืœ ืคืขื ืฉื”ืชืฉืชื™ืช ืฉื”ืคืกืื“ื” ื‘ื ื•ื™ื” ืขืœื™ื” ืžืชืขื“ื›ื ืช), ื‘ื’ืœืœ Chat GPT ืื ื—ื ื• ืžืชืœื‘ื˜ื™ื ืขื›ืฉื™ื• ื’ื ืœื’ื‘ื™ ื”ืขืจืš. ื›ืŸ ื‘ืจื•ืจ ืฉืขื ืกืคืจื™ื•ืช ืงื™ื™ืžื•ืช ื›ืžื• requests ืื™ืŸ ืœื• ื‘ืขื™ื” ืœื›ืชื•ื‘ ืงื•ื“ ืื‘ืœ ืื ืื ื™ ื›ื•ืชื‘ ืื‘ืกื˜ืจืงืฆื™ื” ื—ื“ืฉื” ื” AI ืขื“ื™ื™ืŸ ืœื ืžื›ื™ืจ ืื•ืชื”, ื•ืœื›ืŸ ืœื ื™ื•ื›ืœ ืœื›ืชื•ื‘ ืื™ืชื” ืงื•ื“. ืขื›ืฉื™ื• ื ืกื• ืœื“ืžื™ื™ืŸ ืฉืืชื ืฆืจื™ื›ื™ื ืœื”ื•ืฆื™ื ื‘ืงืฉืช ืจืฉืช ื‘ืคื™ื™ืชื•ืŸ, ืื•ืคืฆื™ื” ืื—ืช ื”ื™ื ืœืงื—ืช ืืช ื”ืงื•ื“ ื”ืขื•ื‘ื“ ืฉ Chat GPT ื ืชืŸ ื•ืื•ืคืฆื™ื” ืฉื ื™ื” ื”ื™ื ืœืฉืœื‘ ืกืคืจื™ื” ืฉืžื‘ื˜ื™ื—ื” ืœืขืฉื•ืช ืืช ืื•ืชื• ื“ื‘ืจ ื‘ืคื—ื•ืช ืฉื•ืจื•ืช. ื”ื‘ืขื™ื” ืฉื›ืฉ Chat GPT ื›ื•ืชื‘ ืืช ื”ืงื•ื“, ื›ืžื•ืช ื”ืฉื•ืจื•ืช ื”ื™ื ื›ื‘ืจ ืœื ืคืงื˜ื•ืจ. ื‘ืจืื™ื™ื” ืงื“ื™ืžื”, ื ื“ืžื™ื™ืŸ ืฉื ืชื™ื™ื ืงื“ื™ืžื” ื›ืฉื›ืœ ื”ืงื•ื“ ืฉื ืงื‘ืœ ืž AI ื™ืขื‘ื•ื“, ื™ื”ื™ื” ืžืื•ื“ ืงืฉื” ืœืฉื›ื ืข ืื ืฉื™ื ืœื”ืฉืชืžืฉ ื‘ืžืžืฉืงื™ื "ืงืœื™ื" ื‘ืžืงื•ื ื‘ืžืžืฉืงื™ื ืฉ Chat GPT ื™ื•ื“ืข ืœื™ื™ืฆืจ.

ToCode
1 418
ืจื™ืืงื˜ ืžื•ืœ ื•ื™ื• - ืฉื™ืžื• ืœื‘ ืœืฉื™ื ื•ื™ื™ ืกื˜ื™ื™ื˜ ื’ื ื‘ืจื™ืืงื˜ ื•ื’ื ื‘ Vue ื™ืฉ ืชืžื™ื›ื” ื‘ืขืจื›ื™ื ืžื—ื•ืฉื‘ื™ื, ืื‘ืœ ื”ืจื–ื•ืœื•ืฆื™ื” ืฉื•ื ื” ื•ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืฉื™ื ืœื‘ ืœื–ื” ื›ืฉื›ื•ืชื‘ื™ื ืงื•ื“. ื‘ืจื™ืืงื˜ ื”ืงื•ืžืคื•ื ื ื˜ื” ื”ื‘ืื” ืžื’ื“ื™ืจื” ืฉื ื™ ืขืจื›ื™ื ื•ืฉื ื™ ืขืจื›ื™ื ืžื—ื•ืฉื‘ื™ื:
import "./styles.css";
import { useState } from "react";

export default function App() {
  const [x, setX] = useState(0);
  const [y, setY] = useState(0);
  const twoX = x * 2;
  const twoY = y * 2;

  return (
    <div className="App">
      <label>
        X:
        <input
          type="number"
          value={x}
          onChange={(e) => setX(Number(e.target.value))}
        />
        <span>x = {x}; </span>
        <span>2x = {twoX}</span>
      </label>
      <label>
        Y:
        <input
          type="number"
          value={y}
          onChange={(e) => setY(Number(e.target.value))}
        />
        <span>y = {y}; </span>
        <span>2y = {twoY}</span>
      </label>
    </div>
  );
}
ืื‘ืœ ืœื ื”ื™ื™ื ื• ื›ื•ืชื‘ื™ื ืงื•ื“ ื›ื–ื” ื‘ืขื•ืœื ื”ืืžื™ืชื™. ื”ืจื–ื•ืœื•ืฆื™ื” ืœื ื ื›ื•ื ื”. ื‘ื“ื•ื’ืžืช ื”ืงื•ื“ ื’ื ื›ืฉ x ืžืฉืชื ื” ื•ื’ื ื›ืฉ y ืžืฉืชื ื” ื™ืฉ ืœื—ืฉื‘ ืžื—ื“ืฉ ืืช ืฉื ื™ ื”ืขืจื›ื™ื ื”ืžื—ื•ืฉื‘ื™ื twoX ื• twoY, ื‘ื’ืœืœ ืฉืจื–ื•ืœื•ืฆื™ื™ืช ืฉื™ื ื•ื™ื™ื ื‘ืจื™ืืงื˜ ื”ื™ื ืงื•ืžืคื•ื ื ื˜ื”. ื‘ืขื•ืœื ื”ืืžื™ืชื™ ื”ืงื•ืžืคื•ื ื ื˜ื” ื”ื–ืืช ื”ื™ืชื” ืžื—ื•ืœืงืช ืœืฉืชื™ ืงื•ืžืคื•ื ื ื˜ื•ืช, ื’ื ื‘ื’ืœืœ ื›ืคืœ ื”ืงื•ื“ ื•ื’ื ื•ื‘ืขื™ืงืจ ื‘ื’ืœืœ ื” State - ืœืงื•ืžืคื•ื ื ื˜ื” ื™ืฉ ืžืกืคืจ ืื–ื•ืจื™ื ืฉื›ืœ ืื—ื“ ืžื”ื ืžื•ืฉืคืข ื‘ืื•ืคืŸ ืขืฆืžืื™ ืžืกื˜ื™ื™ื˜ ืื—ืจ, ื•ื–ื” ืกื™ืžืŸ ื‘ืจื•ืจ ืฉืžืฉื”ื• ื‘ื‘ื—ื™ืจืช ื”ืงื•ืžืคื•ื ื ื˜ื” ืฉืœื ื• ืœื ื ื›ื•ืŸ. ื‘ Vue ื”ืกื™ืคื•ืจ ืงืฆืช ื™ื•ืชืจ ืžื•ืจื›ื‘ ืื‘ืœ ื’ื ื™ื•ืชืจ ืงืœ ืœืžืฉืชืžืฉื™ื. ื–ืืช ื”ืงื•ืžืคื•ื ื ื˜ื”:
<script setup>
import {ref, computed} from 'vue';
const x = ref(0);
const y = ref(0);
const twoX = computed(() => x.value * 2);
const twoY = computed(() => y.value * 2);
</script>

<template>
  <div class="App">
      <label>
        X:
        <input
          type="number"
          v-model="x"
        />
        <span>x = {{x}}; </span>
        <span>2x = {{twoX}}</span>
      </label>
      <label>
        Y:
        <input
          type="number"
          v-model="y"
          
        />
        <span>y = {{y}}; </span>
        <span>2y = {{twoY}}</span>
      </label>
    </div>
</template>
ื”ืงื•ื“ ื–ื”ื” ืื‘ืœ ื”ื”ืชื ื”ื’ื•ืช ืฉื•ื ื” - ืฉื™ื ื•ื™ ื‘ x ื’ื•ืจื ืœื—ื™ืฉื•ื‘ ืžื—ื“ืฉ ืจืง ืฉืœ twoX ื•ืฉื™ื ื•ื™ ื‘ y ื’ื•ืจื ืœื—ื™ืฉื•ื‘ ืžื—ื“ืฉ ืจืง ืฉืœ twoY, ื›ืœื•ืžืจ ืจื–ื•ืœื•ืฆื™ื™ืช ื”ืฉื™ื ื•ื™ ื”ื™ื ืœืคื™ ื”ืžืฉืชื ื” ื•ื”ืขืจื›ื™ื ืฉืžื—ื•ืฉื‘ื™ื ืžืžื ื•. ื–ื” ืื•ืžืจ ืฉื‘ vue ื™ื”ื™ื• ืœื ื• ืคื—ื•ืช ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื ื›ืชื•ืฆืื” ืžืฉื™ื ื•ื™ ืฉื™ืฆื ืžืฉืœื™ื˜ื”, ืื‘ืœ ืžืฆื“ ืฉื ื™ ื™ื•ืชืจ ืงืฉื” ืœื ื• ืœื”ื‘ื™ืŸ ืืช ื”ื”ืฉืคืขื” ื”ืืžื™ืชื™ืช ืฉืœ ื›ืœ ืฉื™ื ื•ื™ ื›ื™ ื‘ืฉื‘ื™ืœ ืœืจืื•ืช ืžื” ืžื•ืฉืคืข ืž x ืฆืจื™ืš ืœืขืงื•ื‘ ืื—ืจื™ ื” computed ื•ืœื”ืกืชื›ืœ ืขืœ ื” render function ืฉื ื•ืฆืจื” ื•ืื™ื–ื” ื—ืœืงื™ื ืžืžื ื” ืžื•ืฉืคืขื™ื ืžื›ืœ ref. ื‘ืกื•ืฃ ื‘ืฉื ื™ ื”ืžืงืจื™ื ื™ื”ื™ื” ื”ื’ื™ื•ื ื™ ืœื—ืœืง ืื—ืจืช ืœืงื•ืžืคื•ื ื ื˜ื•ืช ืœืคื™ ืžื‘ื ื” ื” State. ืืคืฉืจ ืœื”ื’ื™ื“ ืฉ vue ื™ื•ืชืจ ืžืชืืžืฅ ื‘ืฉื‘ื™ืœ ืฉื ื•ื›ืœ "ืœื—ื™ื•ืช" ืขื ื”ื˜ืขื•ืช ื‘ืœื™ ืœืฉืœื ื‘ื‘ื™ืฆื•ืขื™ื ื•ืจื™ืืงื˜ ื“ื•ืจืฉ ืชืฉื•ืžืช ืœื‘ ื’ื‘ื•ื”ื” ื™ื•ืชืจ ืœืคืจื˜ื™ื ื‘ื‘ื ื™ื™ืช ื”ืžืขืจื›ืช. ืฉืžืขืชื™ ื›ื‘ืจ ืืช ื”ื˜ื™ืขื•ืŸ ืฉื‘ื’ืœืœ ื–ื” ืงื•ื“ ืจื™ืืงื˜ ื‘ืื•ืคืŸ ื›ืœืœื™ ื”ื•ื ื˜ื•ื‘ ื™ื•ืชืจ, ื›ื™ ืื ืฉื™ื ื™ื•ืชืจ ืžืชืืžืฆื™ื ืœื›ืชื•ื‘ ื ื›ื•ืŸ. ืื ื™ ื—ื™ื™ื‘ ืœื”ื•ื“ื•ืช ืฉืžื”ื ื™ืกื™ื•ืŸ ืฉืœื™ ื”ืจื‘ื” ืคืขืžื™ื ื–ื” ืœื ืžืžืฉ ืขื•ื–ืจ ื•ืงื•ื“ ืจื™ืืงื˜ ืฉืœ ืžืขืจื›ื•ืช ื’ื“ื•ืœื•ืช ื’ื ืœื ืžื—ื•ืœืง ื ื›ื•ืŸ ืœืงื•ืžืคื•ื ื ื˜ื•ืช ื•ื›ืชื•ืฆืื” ืžื–ื” ื’ื ืกื•ื‘ืœ ืžื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื.

ToCode
1 418
ื”ืื ืœื”ืฉืชืžืฉ ื‘ื˜ืจื ืกืคื•ืจืžืฆื™ื•ืช ืขืœ ืžื™ื“ืข ื‘ echarts? ืื—ื“ ื”ืคื™ืฆ'ืจื™ื ื”ื—ืžื•ื“ื™ื ืฉืœ echarts ื”ื•ื ื”ื™ื›ื•ืœืช ืœื”ืจื™ืฅ Data Pipeline ื‘ืชื•ืš ืงื•ื“ ื™ืฆื™ืจืช ื”ื’ืจืฃ. ืื ื™ ืžื•ื“ื” ืฉืื ื™ ืขื“ื™ื™ืŸ ืžืชืœื‘ื˜ ืžืชื™ ืœื”ืฉืชืžืฉ ื‘ื–ื” ื•ืžืชื™ ืœื”ืจื™ืฅ ืืช ื”ืžื ื™ืคื•ืœืฆื™ื” ืขืœ ื”ืžื™ื“ืข ืžืจืืฉ, ื‘ืžื™ื•ื—ื“ ื›ืฉืžืฉืœื‘ื™ื ืืช echarts ืขื ืกืคืจื™ื™ืช ืคืจื•ื ื˜ืื ื“ ื›ืžื• ืจื™ืืงื˜ ืื• ื•ื™ื•. ื‘ื›ืœ ืžืงืจื” ื•ื‘ื™ื ืชื™ื™ื ื‘ืฉื‘ื™ืœ ื”ืžืฉื—ืง ื‘ื•ืื• ื ืจืื” ืื™ืš ื–ื” ืขื•ื‘ื“. ืฉื™ืžื• ืœื‘ ืœื”ื’ื“ืจืช ื”ืžื™ื“ืข ื”ื‘ืื”:
  dataset: [
    {
      // 1) Raw data from your JSON array
      id: 'raw',
      source: data
    },
    {
      // 2) Sort descending by SUMACCIDEN
      id: 'sorted',
      fromDatasetId: 'raw',
      transform: {
        type: 'sort',
        config: {
          dimension: 'SUMACCIDEN',  // the field to sort by
          order: 'desc'
        }
      }
    },
  ],
ืื ื™ ืžืชื—ื™ืœ ืขื ืžืขืจืš ืฉืœ ืื•ื‘ื™ืงื˜ื™ื ื‘ืฉื data, ื•ื‘ืžืงื•ื ืœืžื™ื™ืŸ ืื•ืชื• ืžืจืืฉ ื‘ืงื•ื“ ืื ื™ ืžืฉืชืžืฉ ื‘ื˜ืจื ืกืคื•ืจืžืฆื™ื” ืฉืœ echarts ื›ื“ื™ ืœื”ืกืชื›ืœ ืขืœ ื”ืžื™ื“ืข ื”ืžืžื•ื™ืŸ. ื”ื™ืชืจื•ืŸ ื”ื•ื ืฉืืคืฉืจ ืœื™ื™ืฆืจ ื˜ืจื ืกืคื•ืจืžืฆื™ื•ืช ืฉื•ื ื•ืช ื•ืœื”ืฆื™ื’ ื’ืจืคื™ื ืื—ืจื™ื ืœื›ืœ ื˜ืจื ืกืคื•ืจืžืฆื™ื”, ืื• ืœื—ื‘ืจ ืืช ื”ื˜ืจื ืกืคื•ืจืžืฆื™ื•ืช ืœืžืขืจื›ืช ื ื™ื”ื•ืœ ื”ืื™ืจื•ืขื™ื ืฉืœ echarts. ื”ื—ื™ืกืจื•ืŸ ื”ื•ื ืฉื”ืชื™ืขื•ื“ ืœื ืžืœื”ื™ื‘ ื•ืื ืฆืจื™ื›ื™ื ื˜ืจื ืกืคื•ืจืžืฆื™ื” ืฉืื™ืŸ ืœื”ื ื–ื” ื™ื›ื•ืœ ืœืชืกื›ืœ. ืœื“ื•ื’ืžื” ืœื ืžืฆืืชื™ ื“ืจืš ืœื”ืฆื™ื’ ืจืง 10 ืขืจื›ื™ื ื’ื‘ื•ื”ื™ื ื‘ื™ื•ืชืจ ืื—ืจื™ ื”ืกื™ื ื•ืŸ. ื”ืืœื˜ืจื ื˜ื™ื‘ื” ื”ื™ื ืœื”ืฉืชืžืฉ ื‘ JavaScript ืคืฉื•ื˜:
const sortedData = data
    .filter(item => item.city && item.SUMACCIDEN)
    .sort((a, b) => b.SUMACCIDEN - a.SUMACCIDEN)
    .slice(0, 10);
ื™ื™ืชืจื•ืŸ ื ื•ืกืฃ ืฉืœ ื”ื’ื™ืฉื” ื”ืคืฉื•ื˜ื” ื”ื•ื ืฉืœื ื—ื™ื™ื‘ื™ื ืœื˜ืขื•ืŸ ืืช ืจื›ื™ื‘ ื”ื˜ืจื ืกืคื•ืจืžืฆื™ื•ืช, ืžื” ืฉืžืงื˜ื™ืŸ ืืช ื”ื‘ืื ื“ืœ. ื“ื•ื’ืžื”? ื‘ื˜ื—. ื”ืงื•ื“ ื”ื‘ื ื™ืฆื™ื’ ืœื›ื ืืช ืขืฉืจ ื”ืขืจื™ื ืขื ื”ื›ื™ ื”ืจื‘ื” ืชืื•ื ื•ืช ื“ืจื›ื™ื ื‘ืกืคื˜ืžื‘ืจ 2024 ื•ืžืกืคืจ ืชืื•ื ื•ืช ื”ื“ืจื›ื™ื ื‘ื›ืœ ืขื™ืจ ื‘ื’ืจืฃ ืขืžื•ื“ื•ืช:
<script setup>
import { use } from 'echarts/core';
import { CanvasRenderer } from 'echarts/renderers';
import { BarChart } from 'echarts/charts';
import {
  TitleComponent,
  TooltipComponent,
  LegendComponent,
  GridComponent,
  DatasetComponent,
} from 'echarts/components';
import VChart from 'vue-echarts';
import { ref } from 'vue';

// Register only the components we need (modular import)
use([
  CanvasRenderer,
  BarChart,
  TitleComponent,
  TooltipComponent,
  LegendComponent,
  GridComponent,
  DatasetComponent,
]);

// Fetch your JSON array of objects (converted from CSV)
const data = await fetch('https://assets.codepen.io/5217/data.json').then(res => res.json());

const sortedData = data
.filter(item => item.city && item.SUMACCIDEN)
.sort((a, b) => b.SUMACCIDEN - a.SUMACCIDEN)
.slice(0, 10);

const option = ref({
  title: {
    text: 'Top 10 Cities with Car Accidents',
    left: 'center'
  },
  tooltip: {
    trigger: 'axis'
  },
  // We use ECharts โ€œdatasetโ€ + transforms for sorting and limiting to top 10
  dataset: {
    source: sortedData,
    id: 'sorted'
  },
  xAxis: {
    type: 'category'
  },
  yAxis: {
    name: 'Number of Accidents'
  },
  series: [
    {
      type: 'bar',
      datasetId: 'sorted',
      // Map city -> x-axis category, SUMACCIDEN -> y-axis value
      encode: {
        x: 'city',
        y: 'SUMACCIDEN'
      },
      // Optional styling
      itemStyle: {
        color: '#5470c6'
      }
    }
  ]
});

</script>

<template>
  <!-- v-chart from vue-echarts -->
  <v-chart class="chart" :option="option" autoresize />
</template>

<style scoped>
.chart {
  height: 600px;
  width: 100%;
}
</style>
ื‘ืฉื‘ื™ืœ ืœื”ืจื™ืฅ ืชืฆื˜ืจื›ื• ืœืฉื™ื ืื•ืชื• ื‘ืชื•ืš ืชื•ื›ื ื™ืช vue ื•ืœื”ืชืงื™ืŸ ืืช vue-echarts ื• echarts.

ToCode
1 418
ืฉืœื•ืฉ ืกื™ื‘ื•ืช ืœืขื‘ื•ื“ ืžืงื•ืžื™ืช ื‘ืžื™ื•ื—ื“ ื‘ืชื•ืจ ืžืชื—ื™ืœื™ื ืœื ืžื–ืžืŸ ืจืื™ืชื™ ืคื•ืกื˜ ืฉื”ืžืœื™ืฅ ืœืžืชื—ื™ืœื™ื ืœืขื‘ื•ื“ ืจืง ืขื ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืื•ื ืœื™ื™ืŸ, ื›ื“ื™ ืœื ืœื”ืกืชื‘ืš ืขื ื”ืชืงื ื•ืช. ืื ื™ ืžื›ื™ืจ ื˜ื•ื‘ ืืช ื”ื‘ืขื™ื” ื›ื•ืœืœ ืžื—ื‘ืจื™ื ืฉืžืœืžื“ื™ื ืชื›ื ื•ืช: ื”ืขื‘ื•ื“ื” ืž Google Colab, ืž Code Sandbox ืื• ืกื˜ืืงื‘ืœื™ืฅ ืื• ืืคื™ืœื• ืžืชื•ืš replit ื”ืจื‘ื” ื™ื•ืชืจ ืงืœื” ืœืชืœืžื™ื“ื™ื ื•ืžื•ืจื™ื ืžืขื“ื™ืคื™ื ืœื ืœื”ืกืชื‘ืš ืขื ื”ืชืงื ื•ืช ืฉืื•ืœื™ ื™ื™ื›ืฉืœื• ื›ื™ ื™ืฉ ื‘ืขื™ื” ืกืคืฆื™ืคื™ืช ืœืžื™ืฉื”ื• ืขืœ ื”ืžื—ืฉื‘. ื’ื ื”ืชืœืžื™ื“ื™ื ืœื ืžืชืœื”ื‘ื™ื ืœื”ืชืงื™ืŸ ืกื‘ื™ื‘ืช ืคื™ืชื•ื— ืžืงื•ืžื™ืช. ื›ืฉืœื•ืžื“ื™ื ืžืฉื”ื• ื—ื“ืฉ ืื ื—ื ื• ืœื”ื•ื˜ื™ื ืœืจืื•ืช ืื™ืš ื–ื” ืขื•ื‘ื“, ื•ืื ืื ื™ ืฆืจื™ืš ืœืฉืจื•ืฃ ืขื›ืฉื™ื• ื—ืฆื™ ื™ื•ื ืขืœ ื”ืชืงื ื•ืช ื–ื” ื™ื›ื•ืœ ืœื”ื•ืจื™ื“ ืืช ื›ืœ ื”ื—ืฉืง ืœืœื™ืžื•ื“. ื•ื‘ื›ืœ ื–ืืช ื›ื“ืื™ ืœื–ื›ื•ืจ: 1. ืœื ืชืžื™ื“ ื™ื”ื™ื” ืœืš ื—ื™ื‘ื•ืจ ืื™ื ื˜ืจื ื˜ - ื‘ืชื•ืจ ืžืชื—ื™ืœื™ื (ืื‘ืœ ื’ื ื‘ืชื•ืจ ื•ื•ืชื™ืงื™ื), ื™ืฉ ืขืจืš ืœื™ื›ื•ืœืช ืฉืœื ื• ื‘ื›ืœ ืจื’ืข ืœืคืชื•ื— ืืช ืกื‘ื™ื‘ืช ื”ืคื™ืชื•ื— ื•ืœื ืกื•ืช ืžืฉื”ื•. ื›ื›ืœ ืฉืžืฉื”ื• ื™ื•ืชืจ ื ื’ื™ืฉ ืื ื—ื ื• ืขื•ืฉื™ื ื™ื•ืชืจ ืžืžื ื•, ื•ืื ื™ืฉ ืœื™ ืกื‘ื™ื‘ืช ืคื™ืชื•ื— ืžื•ืชืงื ืช ืžืงื•ืžื™ืช ื™ืฉ ื™ื•ืชืจ ืกื™ื›ื•ื™ ืฉืืคืขื™ืœ ืื•ืชื” ื•ืื ืกื” ืžืฉื”ื• ื—ื“ืฉ ื’ื ื‘ืœื™ ืื™ื ื˜ืจื ื˜. ื™ื•ืชืจ ืžื–ื”, ื‘ืื•ืชื ืžืฆื‘ื™ื ืฉืื™ืŸ ืœื™ ืื™ื ื˜ืจื ื˜ ื—ื•ื•ื™ืช ื”ืœืžื™ื“ื” ืฉืœื™ ืขืฉื•ื™ื” ืœื”ื™ื•ืช ื˜ื•ื‘ื” ื™ื•ืชืจ ื›ื™ ืื ื™ ืœื ืืชืคืชื” ืœื”ืขืชื™ืง ืงื•ื“ื™ื ืžืื™ื–ื” AI ื•ื™ืฉ ืœื™ ื–ืžืŸ ืœืงืจื•ื ื•ืœื—ืฉื•ื‘ ืขืœ ื”ื“ื‘ืจื™ื ืฉืื ื™ ื‘ื•ื ื”. 2. ื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ืœืจื•ื‘ ืขื•ื‘ื“ ื˜ื•ื‘ ื™ื•ืชืจ ื‘ืกื‘ื™ื‘ื” ืžืงื•ืžื™ืช - ื ื›ื•ืŸ ื”ื”ืชืงื ื” ื”ืจืืฉื•ื ื™ืช ืฉืœ ืกื‘ื™ื‘ื” ืžืงื•ืžื™ืช ื™ื•ืชืจ ืžื•ืจื›ื‘ืช, ืื‘ืœ ืื—ืจื™ ืฉื”ื›ืœ ืžื•ืชืงืŸ ื—ื•ื•ื™ืช ื”ืขื‘ื•ื“ื” ื”ืฉื•ื˜ืคืช ื•ื‘ืžื™ื•ื—ื“ ื”ื•ื“ืขื•ืช ื”ืฉื’ื™ืื” ื ื•ื˜ื•ืช ืœื”ื™ื•ืช ื‘ืจื•ืจื•ืช ื™ื•ืชืจ. ืืคืฉืจ ืœื”ื’ื™ื“ ืฉื–ื” ื“ื‘ืจ ืื—ื“ ืคื—ื•ืช ืฉื™ื›ื•ืœ ืœื”ื™ืฉื‘ืจ. 3. ื”ืžื—ืงืจ ืงืœ ื™ื•ืชืจ - ื‘ืขื‘ื•ื“ื” ืžืงื•ืžื™ืช ื™ื•ืชืจ ืงืœ ืœื ื• ืœื”ื™ื›ื ืก ืœืงื•ื“ ื›ื•ืœืœ ืœืงื•ื“ ืฉืœ ืกืคืจื™ื•ืช ื—ื™ืฆื•ื ื™ื•ืช ืื• ื”ื’ื“ืจื•ืช ื”ืคืจื•ื™ืงื˜ ื›ื“ื™ ืœืจืื•ืช ืžื” ื›ืชื•ื‘ ืฉื ื•ืœื”ื‘ื™ืŸ ืžื” ื™ืฉ ื‘ืคื ื™ื. ื”ื™ื›ื•ืœืช ืœื—ืงื•ืจ ืื™ืš ื“ื‘ืจื™ื ืขื•ื‘ื“ื™ื ืœืจื•ื‘ ืขื•ื–ืจืช ืœืœืžื•ื“, ื’ื ืื ื”ื™ื ืœืคืขืžื™ื ืžืื˜ื” ืื•ืชื ื•. ื”ื™ืชื” ืชืงื•ืคื” ืฉื—ืฉื‘ืชื™ ืฉ Docker ื™ื”ื™ื” ืกื•ื’ ืฉืœ ืคื™ืชืจื•ืŸ ื‘ื™ื ื™ื™ื, ืฉื™ืืคืฉืจ ืœืขื‘ื•ื“ ืขื ื›ืœื™ ืขื‘ื•ื“ื” ื—ื“ืฉื™ื ื•ืœื“ืœื’ ืขืœ ืžื›ืฉื•ืœ ื”ื”ืชืงื ื•ืช. ืื ื™ ืœื ื›ืœ ื›ืš ื‘ื˜ื•ื— ื‘ื–ื” ื™ื•ืชืจ: ืจื•ื‘ ื”ื–ืžืŸ ืืคื™ืœื• ื›ืฉืื ื™ ืžืจื™ืฅ ื“ื‘ืจื™ื ืžืชื•ืš ื“ื•ืงืจ ืขืœ ื”ืžื—ืฉื‘ ืฉืœื™ ื•ืœื›ืื•ืจื” ืœื ืฆืจื™ืš ืœื”ืชืงื™ืŸ ื›ืœื•ื ื™ื•ืฆื ืฉืื ื™ ื›ืŸ ืฆืจื™ืš ืœื”ื™ื›ื ืก ืœืงื•ื ื˜ื™ื™ื ืจ ื•ืœืกื“ืจ ื“ื‘ืจื™ื ืื• ืœื”ื‘ื™ืŸ ืื™ืš ื”ื ืขื•ื‘ื“ื™ื ื•ื–ื” ืœื ื‘ืืžืช ื—ืกืš ืœื™ ื–ืžืŸ ืื• ืขื‘ื•ื“ื”. ืžื” ื“ืขืชื›ื? ื›ืฉืืชื ืœื•ืžื“ื™ื ื›ืœื™ ื—ื“ืฉ ืžืขื“ื™ืคื™ื ืœื”ืชืงื™ืŸ ืžืงื•ืžื™ืช, ืœืคืชื— ืื•ื ืœื™ื™ืŸ ืื• ืœื”ืจื™ืฅ ืงื•ื ื˜ื™ื™ื ืจ?