Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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 JS:如何检查整数数组中对应的负整数?_Javascript_Arrays - Fatal编程技术网

Javascript JS:如何检查整数数组中对应的负整数?

Javascript JS:如何检查整数数组中对应的负整数?,javascript,arrays,Javascript,Arrays,给定一个(JS)整数数组,我试图确定它是否是zer0平衡的——也就是说,对于任何元素x,在一行代码中都有一个对应的元素-x- 我认为您可以使用each()和includes()来实现这一点,但无法获得正确的逻辑 arr.every(n=>arr.includes(-n))显然不起作用,因为includes()不是一个函数,但这是我一直失败的想法。下一步该去哪里?谢谢大家! 您可以使用哈希表,用正数递增,用负数递减。如果完成,请检查所有属性并返回nefgated检查 函数是平衡的(数组){ va

给定一个(JS)整数数组,我试图确定它是否是zer0平衡的——也就是说,对于任何元素x,在一行代码中都有一个对应的元素-x-

我认为您可以使用
each()
includes()
来实现这一点,但无法获得正确的逻辑


arr.every(n=>arr.includes(-n))
显然不起作用,因为
includes()
不是一个函数,但这是我一直失败的想法。下一步该去哪里?谢谢大家!

您可以使用哈希表,用正数递增,用负数递减。如果完成,请检查所有属性并返回nefgated检查

函数是平衡的(数组){
var hash={};
array.forEach(a=>hash[Math.abs(a)]=(hash[Math.abs(a)]| | 0)+Math.sign(a));
return!Object.keys(hash).some(k=>hash[k]);
}
log(isBalanced([1,2,-2,-1]);
log(isBalanced([1,2,-2,-1,-1,1]);
log(isBalanced([1,2,-2]);

log(isBalanced([1,2,-2,1,1])
如果您的环境有
数组。每个
但不是
数组。包含
,这很奇怪,但您可以使用
数组。一些
而不是像这样包含

arr.every(n => arr.some(x => x === -n))
您可以使用
every
indexOf
以及reduce语句来检查整个数组是否实际合计为零,这是第一个先决条件

使用
console.log
,您可以看到它发生在控制台中数组中的每个项上

如果它在任何一点上都没有找到匹配的负元素,它将在那里停止执行

const arr=[1,4,8,-4,-8,-1,13,-13];

log((arr.reduce((x,y)=>x+y)==0)和&arr.every(n=>{console.log(n);返回arr.indexOf(-n)>-1;})通过删除所有换行符,可以在一行中编写JavaScript中的任何内容。那是一个无用的要求。是一个函数,但必须在支持ES2016的环境中调用。这可以换成
.indexOf()
arr.every(n=>~arr.indexOf(-n))
您的需求不清楚。数组
[1,1,-1]
的属性是,每个元素x都有一个对应的元素-x,但它不是零平衡的。你到底需要什么?为什么它必须是一行代码?忽略了这是一个多年来被多次提出的问题这一事实,“显然不起作用,因为includes()不是一个函数”这句话让我相信OP不是在支持ES2016功能的环境中运行的。这很酷。你能解释一下const checkNegative=(n,a)=>a.includes(-n)起作用而const checkNegative=(n,a)=>a.includes(-n)不起作用吗?它是回调结构,位于元素的第一位,然后是实际索引,然后是调用数组。这就是为什么它不使用索引,而使用数组的原因。@mhodges,箭头函数表示ES6。@NinaScholz ES6!==ES2016这将接受
[1,1,-1]
,目前尚不清楚OP是否愿意接受该数组。这也是我在发布此内容之前的想法,但鉴于OP打算使用函数“includes”,这将产生该行为,我认为这是合适的。在我的控制台中,这一行代码引发的错误与
every()
--“uncaughttypeerror:n.some不是函数”的错误相同。如果您搜索这些javascript函数,您可以找到可以复制并粘贴到.js文件中的多边形填充