【问题标题】:Find single value from multiple values in single array从单个数组中的多个值中查找单个值
【发布时间】:2016-11-10 16:34:57
【问题描述】:

我有一个数组,其中包含多个值,如下面的代码所示。

tempstraindatasource

tempstraindatasource[0] = {
A = "0",
B = "1",
C = "2",
D = "3"
}

tempstraindatasource[1] = {
A = "4",
B = "5",
C = "6",
D = "7"

依此类推,我有很多数据存在于单个数组中 }

我想做一个程序来查找数据是否包含在单行中,例如我想查找名称为“A”=“0”或任何值“B”=“0”或“C”的物种= “0”!我怎样才能在单行中做到这一点?请有人帮我做这件事。

在此先感谢并感谢。

【问题讨论】:

  • 你能用代码替换图像吗?人们尝试复制和粘贴代码并重建您的问题要容易得多,而不是从图像中读取它。
  • 当务之急,请有人帮我做这件事。当然,我们是来帮助你的。但是,您应该首先看到 How to Askminimal reproducible example
  • 请添加您喜欢搜索的内容和想要的结果。
  • 我已经更新了问题,请再次查看@NinaScholz

标签: javascript jquery arrays arraylist contains


【解决方案1】:

您可以对数组使用Array#forEach 并检查是否有任何属性具有值,您需要使用Array#some,然后将索引推送到结果数组。

var data = [{ a: 0, b: 1, c: 2, d: 3 }, { a: 4, b: 5, c: 6, d: 7 }],
    indices = [];

data.forEach(function (a, i) {
    Object.keys(a).some(function (k) {
        return a[k] === 0;
    }) && indices.push(i);
});

console.log(indices);

【讨论】:

  • 我可以得到像 a[k].index 这样的索引作为返回吗?
  • 哦,明白了,非常感谢@NinaScholz 这么棒的逻辑对我帮助很大。
【解决方案2】:

如 cmets 中所述,您的问题需要编辑(或者更好的是完全重写),但我认为您需要的是这个

var fruits = [{name: 'banana', cost: 5}, {name: 'apple', cost:2}];

var filteredArray = fruits.map(function(fruit, index){
  fruit.index = index;
  return fruit;
}).filter(function(fruit){
  return fruit.name === 'banana';
});

document.write(JSON.stringify(filteredArray));

【讨论】:

  • 是的,这就是我想要的,但我需要那个数组的索引,我可以得到它吗?如果可以,请更新 sn-p 以获取索引。
  • 谢谢@Almis,非常感谢,非常感谢,但我已经从 NinaScholz 那里得到了,仍然感谢您花费宝贵的时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
  • 2021-04-12
相关资源
最近更新 更多