我有一个包含示例的5个值的数组:
0.01
0.1
1
10
100
0.1
1
10
100
1000
1
10
100
1000
10000
5
50
500
5000
50000
我需要转换为包含相同比例间隔的100个值的数组,并且还包含序列中的原始5个值。像:
[0.01,...,0.1,...1,...10,...100]
我以为我可以使用numeric.linspace(0.01,100,100);
http://www.numericjs.com/documentation.html
但这只会传递第一个和最后一个想要的价值。理想情况下,某些函数接受n个值的数组作为第一个参数,最终需要array.length
我不知道如何制定这个问题所以如果更多的话,请提出一个不同的标题......
答案 0 :(得分:1)
您可以使用权重映射值。
$tz_object = new DateTimeZone('Africa/Kampala');
$datetime = new DateTime();
$datetime->setTimezone($tz_object);
$timeNow = $datetime->format('Y\-m\-d\ h:i:s');
$date = new DateTime();
$date->setTime(23,00);
$timeAllowed = $datetime->format('Y\-m\-d\ h:i:s');
if ($timeNow < $timeAllowed) {
function woo_add_cart_fee() {
global $woocommerce;
$woocommerce->cart->add_fee( __('Custom', 'woocommerce'), number_format(5) );
}
add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );
}
&#13;
答案 1 :(得分:1)
希望这就是你的意思:
function expand(arr, len){
var perSection = Math.floor(len / (arr.length - 1));
var out = [];
var val;
console.log('Per Section:', perSection);
for (let i = 0; i < arr.length - 1; i++) {
val = arr[i];
out.push(val);
var interval = (arr[i+1] - arr[i]) / perSection;
console.log('ival', interval);
for (let j = 0; j < perSection-1; j++) {
val += interval;
out.push(val)
}
}
out.push(arr[arr.length-1]);
return out;
}
console.log(expand([10, 40, 70, 100], 10));
请注意,生成的数组的长度并不总是与请求的长度完全匹配,因为在计算每个区间中有多少个数字时可能会出现舍入错误。
根据所需的行为,可以添加其他逻辑来处理这些边缘情况。