我希望将两个阵列连接在一起。 我有两个数组,并希望它们的元素组合在一起......
所以,让我们说我有扫描仪。 它为array1中的每个元素(如US $)提供了一个值。 我想要它返回一些东西(比如一个字符串,"这个产品卖得便宜!")如果每个元素的值小于或等于array2中的值。
我只希望它将数组中的一个项目链接到相同位置中的另一个项目。
两个数组(上面简要提到):
var array1 = [741, 451, 54188, 5847, 5418, 54944, 310, 541, 7451, 10211, 113, 9115, 62, 2841, 52482481, 24];
var array2 = [15, 418, 488, 130000, 8482, 55, 16, 14, 2546, 651, 4521, 11, 54, 659, 542, 1152];
因此,741将与15,451至418,54188至488等相关联。
在"链接"之后,我将能够看到array1中元素的值(按值,我的意思是我的扫描仪找到的每个值)等于/小于array2中该元素的值。
例如,将741放入我的扫描仪会返回16。 这不低于15,所以不会返回任何东西。 - 但是,将451放入我的扫描仪会返回417.这不到418,所以它会返回"这个产品卖得便宜!"
我希望这是有道理的。
答案 0 :(得分:1)
我会创建一个对象并将其放在一个数组中。
var my Obj = {no1:741, no2:15, text:'some text'}
这样可以在不需要扫描仪的情况下构建阵列,因为它已经存储在“扫描”状态
答案 1 :(得分:0)
您可以使用javascript对象,其工作方式类似于字典(或hashmap)
var myObj = {};
array1.forEach(function(item, i) {
myObj[item] = array2[i];
});
alert(myObj[741]);
>>> 15
在这样的安排中,array1包含keys
,而数组2包含您词典的values
。
答案 2 :(得分:0)
这是一个简单的解决方案,只使用.indexOf()
查找第一个数组中的产品代码,然后使用该索引在第二个数组中查找比较价格:
Product Number: <input id="testVal" type="text" value="741"><br>
Test Price: <input id="priceVal" type="text" value=15><br>
<button id="go">Lookup</button><br><br>
<div id="result"></div>
document.getElementById("go").addEventListener("click", function() {
var prod = +document.getElementById("testVal").value;
var price = +document.getElementById("priceVal").value;
var result = lookupValue(prod, price);
document.getElementById("result").innerHTML = result;
});
function lookupValue(prod, price) {
var productCodes = [741, 451, 54188, 5847, 5418, 54944, 310, 541, 7451, 10211, 113, 9115, 62, 2841, 52482481, 24];
var prices = [15, 418, 488, 130000, 8482, 55, 16, 14, 2546, 651, 4521, 11, 54, 659, 542, 1152];
var index;
if (!prod || !price) {
return "Please Enter a Product Number and Price";
}
if ((index = productCodes.indexOf(prod)) >= 0) {
if (index < prices.length && price < prices[index]) {
return "This product is selling for cheap!";
} else {
return "This product is not a bargain.";
}
} else {
return "Product not found for comparison";
}
}
工作演示:http://jsfiddle.net/jfriend00/4S64t/。
使用这么多产品代码,只需使用.indexOf()
在第一个数组中找到匹配项就没有问题。但是,如果您有很多产品代码,那么将它们编入一个对象进行直接查找会快得多。