Giter Site home page Giter Site logo

average-rating's Introduction

average-rating

Calculate average and scoring based on Wilson Score Equation

NPM CI test Coverage Status CodeQL JavaScript Style Guide

Google app on Google Play

Setup

Usage

Node.js:

import {
  score,
  rate,
  average
} from 'average-rating'

// with CommonJS environment
// const { score, rate, average } = require('feed-reader/dist/cjs/average-rating.js')

score(80, 20) // => 0.71
average([134055, 57472, 143135, 365957, 1448459]) // => 4.4
rate([134055, 57472, 143135, 365957, 1448459]) // => 0.84
Note:

Since Node.js v14, ECMAScript modules have became the official standard format. Just ensure that you are using module system and enjoy with ES6 import/export syntax.

Browsers:

Currently ECMAScript modules work fine on almost browsers:

<script type="module">
import { average } from 'https://unpkg.com/average-rating/dist/average-rating.esm.js'

average([134055, 57472, 143135, 365957, 1448459])
</script>

With outdated browsers, we can use traditional way:

<script type="text/javascript" src="https://unpkg.com/average-rating/dist/average-rating.min.js"></script>

<script>
const { average } = window.AverageRating
average([134055, 57472, 143135, 365957, 1448459])
</script>

Example:

// get Winson score for a pair of (Positive, Negative) voting
score(0, 1000) // --> 0
score(1000, 0) // --> 0.96
score(1000, 1000) // --> 0.48

// from 1 to 5 stars
const rating = [134055, 57472, 143135, 365957, 1448459]
rate(rating) // --> 0.84

// calculate average
average(rating) // --> 4.4

APIs

.score(Number positive, Number negative)

Return a value from 0 to 1.

Used for the systems of Positive/Negative rating, such as the videos on YouTube, the answers on StackOverflow, etc. In which, each of item can be voted as good or bad, like or dislike or something like that.

.rate(Array ratings)

Return a value from 0 to 1.

Used for the systems of 5 rating levels, such as the applications on Google Play store, the books on Amazon, etc. In which, each of item can be voted as one of value in the range of 1 to 5 stars.

Update
  • Since v1.1.5, this rate method accepts custom range of ratings. 5 or more values are OK.
const input = [3, 4, 2, 6, 12, 46, 134, 213, 116, 91, 45, 15, 58, 96, 1654] // 15 values
rate(input) // => 0.85

rate([3, 4, 2, 6, 12, 46, 134, 213, 116, 91]) // => 0.74

.average(Array ratings)

Return a value from 0 to 5.

Calculate normal average value for the systems of 5 rating levels.

Test

git clone https://github.com/ndaidong/average-rating.git
cd average-rating
npm install
npm test

License

The MIT License (MIT)

average-rating's People

Contributors

ndaidong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.