Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 按嵌套数组中的值筛选数组_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 按嵌套数组中的值筛选数组

Javascript 按嵌套数组中的值筛选数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,如果数组的值包含特定字符串,我想返回数组的值 var names= [ ["FCFEDA", "Moon Glow"], ["FCFFE7", "China Ivory"], ["FCFFF9", "Ceramic"], ["FD0E35", "Torch Green"], ["FD5B78", "Wild Watermelon"], ["FD7B33", "Crusta Green"] ]; var color_swatches = [];

如果数组的值包含特定字符串,我想返回数组的值

var names=  [
    ["FCFEDA", "Moon Glow"],
    ["FCFFE7", "China Ivory"],
    ["FCFFF9", "Ceramic"],
    ["FD0E35", "Torch Green"],
    ["FD5B78", "Wild Watermelon"],
    ["FD7B33", "Crusta Green"]

];
var color_swatches = [];
var result = $.grep(names, function(v,i) {
    if(v[1].indexOf("Green") > -1){
        return v[0];
    }
})
color_swatches.push(result);
alert(color_swatches);
导致

    FD0E35, Torch Green,FD7B33, Crusta Green
我要的正是这样

    ["#FD0E35","#FD7B33"]
请注意,结果应位于方括号内,并带有qoutes。仅包含十六进制,不包含等效名称和#已添加


有什么想法吗?

您可以使用贴图功能来变换
色样
数组。在映射功能中,您可以选择第一个项目并添加
#
。在警报之前,添加:

color_swatches = $.map(color_swatches[0], function(index, color_swatch) {
    return "#" + color_swatch[0];
});

可以使用贴图函数变换
色样
数组。在映射功能中,您可以选择第一个项目并添加
#
。在警报之前,添加:

color_swatches = $.map(color_swatches[0], function(index, color_swatch) {
    return "#" + color_swatch[0];
});

你可以试试这样的

var名称=[
[“FCFEDA”,“月光”],
[“FCFFE7”,“中国象牙”],
[“FCFFF9”,“陶瓷”],
[“FD0E35”,“火炬绿”],
[“FD5B78”,“野生西瓜”],
[“FD7B33”,“甲壳绿”]
];
var color_样例=[];
name.forEach(项目=>{
if(第[1]项。索引(“绿色”)>-1){
颜色样本。推送(“#”+项[0]);
}
});
控制台日志(颜色样本);

log(JSON.stringify(color_样例))您可以尝试这样的方法

var名称=[
[“FCFEDA”,“月光”],
[“FCFFE7”,“中国象牙”],
[“FCFFF9”,“陶瓷”],
[“FD0E35”,“火炬绿”],
[“FD5B78”,“野生西瓜”],
[“FD7B33”,“甲壳绿”]
];
var color_样例=[];
name.forEach(项目=>{
if(第[1]项。索引(“绿色”)>-1){
颜色样本。推送(“#”+项[0]);
}
});
控制台日志(颜色样本);
log(JSON.stringify(color_样例))
函数«查找满足筛选函数的数组元素»

换句话说,在您的代码中,它将“子数组”返回到
结果中

尝试使用以下简单循环:

var名称=[
[“FCFEDA”,“月光”],
[“FCFFE7”,“中国象牙”],
[“FCFFF9”,“陶瓷”],
[“FD0E35”,“火炬绿”],
[“FD5B78”,“野生西瓜”],
[“FD7B33”,“甲壳绿”]
];
var color_样例=[];
对于(i=0;i-1){
颜色样本。推送(名称[i][0]);
}
}
//颜色样本。推送(结果);
log(JSON.stringify(color_样例))
函数«查找满足筛选函数的数组元素»

换句话说,在您的代码中,它将“子数组”返回到
结果中

尝试使用以下简单循环:

var名称=[
[“FCFEDA”,“月光”],
[“FCFFE7”,“中国象牙”],
[“FCFFF9”,“陶瓷”],
[“FD0E35”,“火炬绿”],
[“FD5B78”,“野生西瓜”],
[“FD7B33”,“甲壳绿”]
];
var color_样例=[];
对于(i=0;i-1){
颜色样本。推送(名称[i][0]);
}
}
//颜色样本。推送(结果);

log(JSON.stringify(color_样例))您可以使用JavaScript函数,并且:

var名称=[
[“FCFEDA”,“月光”],
[“FCFFE7”,“中国象牙”],
[“FCFFF9”,“陶瓷”],
[“FD0E35”,“火炬绿”],
[“FD5B78”,“野生西瓜”],
[“FD7B33”,“甲壳绿”]
]
console.log(names.filter(n=>n[1].includes('Green')).map(n=>`${n[0]}`)

//[“#FD0E35”、“#FD7B33”]
您可以使用JavaScript函数,并且:

var名称=[
[“FCFEDA”,“月光”],
[“FCFFE7”,“中国象牙”],
[“FCFFF9”,“陶瓷”],
[“FD0E35”,“火炬绿”],
[“FD5B78”,“野生西瓜”],
[“FD7B33”,“甲壳绿”]
]
console.log(names.filter(n=>n[1].includes('Green')).map(n=>`${n[0]}`)

//[“#FD0E35”、“#FD7B33”]
另一种选择:除非您需要支持一些古老的浏览器,否则您可以跳过jQuery,使用普通的JS:var result=names.filter(函数(v){return v[1].indexOf(“Green”)>-1;}.map(函数(w){return;您不需要jQuery来实现这一点:)另一种选择是:除非您需要支持一些古老的浏览器,否则您可以跳过jQuery,使用vanilla JS:var result=names.filter(函数(v){return v[1].indexOf(“绿色”)>-1;}).map(函数(w){return”#“+w[0]});您不需要jQuery来实现这一点:)我需要像这样的东西,“#FD0E35”,“#FD7B33”]我的区别在哪里?我需要像这样的东西,“#FD0E35”,“#FD7B33”]我的区别在哪里?