在推送元素时检查元素前的数组

时间:2016-12-06 11:54:18

标签: javascript arrays

我有一个数组(key,startValue,EndValue);

var fruits = [[1,10, 15], [1,25, 30]];

我想在推送之前验证

console.log(push([1,5, 35]));  // false
console.log(push([2,5, 35]));  // true
console.log(push([1,30, 40])); // true
console.log(push([1,15, 25])); // true
console.log(push([1,5, 10]));  // true

console.log(fruits);

同样,我有密钥2,3,4,5,等等。

我正在使用以下脚本。

function push(array) {
    return fruits.every(function(a) {
        return array[0] == a[0] && (array[2] <= a[1] || a[2] <= array[1]);
    }) && fruits.push(array) && true;
}

1 个答案:

答案 0 :(得分:3)

您可以先检查按键。

return array[0] !== a[0] || array[2] <= a[1] || a[2] <= array[1];
//     ^^^^^^^^^^^^^^^^^^^^

&#13;
&#13;
function push(array) {
    return fruits.every(function(a) {
        return array[0] !== a[0] || array[2] <= a[1] || a[2] <= array[1];
    }) && fruits.push(array) && true;
}

var fruits = [[1, 10, 15], [1, 25, 30]];

console.log(push([1, 5, 35]));  // false
console.log(push([2, 5, 35]));  // true
console.log(push([1, 30, 40])); // true
console.log(push([1, 15, 25])); // true
console.log(push([1, 5, 10]));  // true
console.log(push([2, 0, 5]));   // true
console.log(fruits);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
&#13;
&#13;