我有3个相同长度的数组。我想在不点击按钮的情况下减去前两个数组中的值,如果答案是否定的,我得到该数组编号的索引,并显示第3个隐藏的输入字段(以html格式)数组,其数组索引对应于负数的数组索引。
例如:
//assuming this is the first array
array('10','2','3','4','5');
//and assuming this is the second array
array('9','1','4','3','7');
我想从第一个数组中减去秒的值,这样我就会得到结果,例如:
array('1','1','-1','1','-2');
以上结果确定要显示哪些输入字段(来自第3个数组)。例如,要显示的输入字段是数组索引为2和4
的输入字段这是我的第三个输入字段数组的代码:
<?php while($roww = mysql_fetch_array($result)) { ?>
<input type='text' name="reason[]" class="explanation">
<?php } ?>
有什么方法可以使上述成为可能吗?
到目前为止,这是我尝试过的,虽然我还没有应用数组...只是对我在互联网上找到的样本稍作更新......
<html>
<head>
<script src="jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".explanation").hide();
var input1_ = document.getElementById('num1');
var input_ = document.getElementById('num2');
function sub(){
var answer = (parseInt(input1_.value) - parseInt(input2_.value));
if(answer < 0){
$(".explanation").show();
}else $(".explanation").hide();
}
document.getElementById('num1').onkeyup = function () {
sub();
};
document.getElementById('num2').onkeyup = function () {
sub();
};
});
</script>
</head>
<body>
<input type='number' id='num1' value="0">
<input type='number' id='num2' value="0">
<input type='text' class='explanation' value="0">
</body>
</html>
答案 0 :(得分:2)
var a = Array('10','2','3','4','5');
var b = Array('9','1','4','3','7');
var c = a.map(function(v,i) { return (v - b[i]); });
答案 1 :(得分:0)
您可以使用循环:
var result = [];
for (let i=0; i<arr1.length; i++) {
result[i] = arr1[i]-arr2[i];
}
答案 2 :(得分:0)
您可以使用map:
创建一个新数组,其结果是在此数组中的每个元素上调用提供的函数。
摘录:
var firstArr = ['10','2','3','4','5'];
var secondArr = ['9','1','4','3','7'];
//
// for each element in the first array
//
var result = firstArr.map(function(val, index) {
// convert the current array value to number
// subtract the value contained in the second array
// and return the value
return +val - +secondArr[index];
});
console.log(result);
答案 3 :(得分:0)
只要您的数组长度相同,这应该有效..
function subtrArrays(arr1[], arr2[])
{
var final = [];
for(var i = 0; i < arr1.length(); i++)
{
final[i] = arr1[i] - arr2[i];
}
return final;
}
使用:
var myArray = subtrArrays(array('10','2','3','4','5'),array('9','1','4','3','7'));
答案 4 :(得分:0)
这是其中一个似乎Array.prototype.map()
最适合的案例,但实际上并非如此。如果你认为整个工作Array.prototype.forEach()
似乎更好,因为Array.prototype.map()
的返回值对我们来说将毫无用处。最好在一个没有返回任何东西的迭代函数中完成工作。
var a = ['10','2','3','4','5'],
b = ['9','1','4','3','7'],
divs = [div1,div2,div3,div4,div5];
a.forEach((e,i) => e-b[i] < 0 && (divs[i].className = divs[i].className.replace(/\s*hidden\s*/,"")));
&#13;
.hidden {display:none}
&#13;
<div id="div1" class="hidden">div1 text</div>
<div id="div2" class="hidden">div2 text</div>
<div id="div3" class="hidden">div3 text</div>
<div id="div4" class="hidden">div4 text</div>
<div id="div5" class="hidden">div5 text</div>
&#13;