连接元素在单独的数组中

时间:2014-07-06 22:53:35

标签: javascript arrays

我希望将两个阵列连接在一起。 我有两个数组,并希望它们的元素组合在一起......

所以,让我们说我有扫描仪。 它为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,所以它会返回"这个产品卖得便宜!"

我希望这是有道理的。

3 个答案:

答案 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()在第一个数组中找到匹配项就没有问题。但是,如果您有很多产品代码,那么将它们编入一个对象进行直接查找会快得多。