Bilibili wbi sign test - Mixin params

Benchmark created on


Description

See also: https://socialsisteryi.github.io/bilibili-API-collect/docs/misc/sign/wbi.html

Setup

const mixinQuery = {
	a: '12345',
	b: '23456',
	c: '34567',
	d: '45678',
	e: 1234567890
}
const sortedParams = Object.keys(mixinQuery).sort()
const charRegex = /[!'\(\)*]/g

Test runner

Ready to run.

Testing in
TestOps/sec
Official
const mixinParams = []
for (var i = 0; i < sortedParams.length; i++) {
	var key = sortedParams[i]
	var value = mixinQuery[key]

	if (value && typeof value === 'string') {
		value = value.replace(charRegex, '')
	}

	if (value != null) {
	mixinParams.push("".concat(key, "=").concat(value))
  }
}
ready
Unofficial 1
const mixinParams = []
sortedParams.forEach(element => {
	const key = element
	let value = mixinQuery[key]

	if (value && typeof value === 'string') {
		value = value.replace(charRegex, '')
	}

	if (value !== null) {
		mixinParams.push(`${key}=${value}`)
	}
})
ready
Unofficial 2
const mixinParams = sortedParams
	.map(key => {
		let value = mixinQuery[key]
		if (value && typeof value === 'string') {
			value = value.replace(charRegex, '')
		}
		return value !== null ? `${key}=${value}` : null
	})
	.filter(value => {
		return value !== null
	})
ready
Unofficial 3
const mixinParams = sortedParams
	.map(key => {
		const value = mixinQuery[key]
		if (value && typeof value === 'string') {
			return `${key}=${value.replace(charRegex, '')}`
		}
		return value !== undefined ? `${key}=${value}` : value
	})
	.filter(value => {
		return value !== undefined
	})
ready
Unofficial 4
const mixinParams = sortedParams.map(key => {
	const value = mixinQuery[key]
	if (typeof value === 'string') {
		return `${key}=${value.replace(charRegex, '')}`
	}
	return `${key}=${value}`
})
ready
Unofficial 5
const mixinParams = sortedParams.map((key) => {
	const value = mixinQuery[key].toString().replace(charRegex, "")
	return `${key}=${value}`
})
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.