Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 筛选动态数组值_Javascript_Arrays - Fatal编程技术网

Javascript 筛选动态数组值

Javascript 筛选动态数组值,javascript,arrays,Javascript,Arrays,我需要编码方面的帮助 我需要从数组中筛选14个值。 这些值是动态创建的。 我想将值与20.0进行比较 我只需要其中两个值高于20.0 我把希望寄托在过滤器方法上,因为开关不起作用。 提前谢谢你 if (!Array.prototype.filter) { Array.prototype.filter = function (fun /*, thisp*/) { var len = this.length; if (typeof fun != "funct

我需要编码方面的帮助

我需要从数组中筛选14个值。 这些值是动态创建的。 我想将值与20.0进行比较 我只需要其中两个值高于20.0

我把希望寄托在
过滤器
方法上,因为开关不起作用。
提前谢谢你

if (!Array.prototype.filter) {
    Array.prototype.filter = function (fun /*, thisp*/) {
        var len = this.length;

        if (typeof fun != "function")
            throw new TypeError();

        var res = new Array();
        var thisp = arguments[1];

        for (var i = 0; i < len; i++) {
            if (i in this) {
                var val = this[i]; // in case fun mutates this
                if (fun.call(thisp, val, i, this))
                    res.push(val);
            }
        }
        return res;
    };
}

function isBigEnough(element, index, array) {
    return (filtered >= 20.0);
}

var filtered = [
    (vol1l * 100).toFixed(1),
    (vol2l * 100).toFixed(1),
    (vol3l * 100).toFixed(1),
    (vol4l * 100).toFixed(1),
    (vol5l * 100).toFixed(1),
    (vol6l * 100).toFixed(1),
    (vol7l * 100).toFixed(1),
    (vol1r * 100).toFixed(1),
    (vol2r * 100).toFixed(1),
    (vol3r * 100).toFixed(1),
    (vol4r * 100).toFixed(1),
    (vol5r * 100).toFixed(1),
    (vol6r * 100).toFixed(1),
    (vol7r * 100).toFixed(1)
].filter(isBigEnough);

if (filtered) {
    testText.textContent = "JA! Gerät"
} else {
    testText.textContent = "NO! Nein"
}
if(!Array.prototype.filter){
Array.prototype.filter=函数(fun/*,thisp*/){
var len=此长度;
如果(乐趣的类型!=“功能”)
抛出新的TypeError();
var res=新数组();
var thisp=参数[1];
对于(变量i=0;i=20.0);
}
已筛选的变量=[
(卷1*100)。固定(1),
(vol2l*100)。固定(1),
(体积3L*100)。固定(1),
(体积4L*100)。固定(1),
(体积5L*100)。固定(1),
(vol6l*100)。toFixed(1),
(体积7L*100)。固定(1),
(vol1r*100)。固定(1),
(vol2r*100)。固定(1),
(卷3R*100)。固定(1),
(卷4R*100)。固定(1),
(卷5R*100)。固定(1),
(卷6R*100)。固定(1),
(卷7R*100).固定(1)
].过滤器(足够大);
如果(已过滤){
testText.textContent=“JA!Gerät”
}否则{
testText.textContent=“不!不”
}

功能足够大,请尝试使用
20.0
检查
过滤的
。这将始终返回
false
,因为
filtered
undefined

代码 例子
函数足够大(元素、索引、数组){
返回(元素>=20.0);
}
过滤的var=[1.0.toFixed(1)、2.0.toFixed(1)、20.0.toFixed(1)、21.0.toFixed(1)]。过滤器(足够大)

console.log(已过滤)
功能足够大,请尝试使用
20.0
检查
已过滤的
。这将始终返回
false
,因为
filtered
undefined

代码 例子
函数足够大(元素、索引、数组){
返回(元素>=20.0);
}
过滤的var=[1.0.toFixed(1)、2.0.toFixed(1)、20.0.toFixed(1)、21.0.toFixed(1)]。过滤器(足够大)

log(已过滤)
为什么不映射变量,获取调整后的值并进行过滤呢

const
    factor100 = v => 100 * v,
    isBigEnough = v => v >= 20;

var filtered = [vol1l, vol2l, vol3l, vol4l, vol5l, vol6l, vol7l, vol1r, vol2r, vol3r, vol4r, vol5r, vol6r, vol7r]
        .map(factor100)
        .filter(isBigEnough);
此方案适用于的内置原型


我建议直接使用数组时使用更好的iterable数据结构。

为什么不映射变量,获取调整后的值并对其进行过滤呢

const
    factor100 = v => 100 * v,
    isBigEnough = v => v >= 20;

var filtered = [vol1l, vol2l, vol3l, vol4l, vol5l, vol6l, vol7l, vol1r, vol2r, vol3r, vol4r, vol5r, vol6r, vol7r]
        .map(factor100)
        .filter(isBigEnough);
此方案适用于的内置原型


我建议直接使用数组时使用更好的可移植数据结构。

我不确定是否理解您要归档的内容,但我想您应该检查
element=>20.0
而不是(数组)
filtered
…我不确定您想归档什么,但我想您应该检查
element=>20.0
而不是(数组)
filtered
…这将迭代数组两次,并且不会引用
足够大的
,哪一个更大reusable@Roman对,但是我认为重写过滤器的问题更大。这将迭代数组两次,并且没有引用足够大的
isbigtough
,哪一个更大reusable@Roman,是的,但我认为重写过滤器更重要。