Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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_Arrays_Object - Fatal编程技术网

Javascript 将对象值作为单独的项推入数组

Javascript 将对象值作为单独的项推入数组,javascript,arrays,object,Javascript,Arrays,Object,我想将下面对象的所有粉色值作为项目添加到粉色数组中 const mainObj = [ { image: 'test_icon.jpg', colour: "pink", text: "text", link: "" }, { image: 'test_icon.jpg', colour: "pink", text: "text", link: "" }, { image: 'test_icon.jpg', colo

我想将下面对象的所有粉色值作为项目添加到粉色数组中

const mainObj = [
{
    image: 'test_icon.jpg',
    colour: "pink",
    text: "text",
    link: ""
},
{
    image: 'test_icon.jpg',
    colour: "pink",
    text: "text",
    link: ""
},
{
    image: 'test_icon.jpg',
    colour: "pink",
    text: "text",
    link: ""
},
{
    image: 'test_icon.jpg',
    colour: "pink",
    text: "text",
    link: ""
},
{
    image: 'test_icon.jpg',
    colour: "green",
    text: "text",
    link: ""
},
{
    image: 'test_icon.jpg',
    colour: "green",
    text: "text",
    link: ""
},
{
    image: 'test_icon.jpg',
    colour: "blue",
    text: "text",
    link: ""
},
{
    image: 'test_icon.jpg',
    colour: "blue",
    text: "text",
    link: ""
},
{
    image: 'test_icon.jpg',
    colour: "green",
    text: "text",
    link: ""
}
];
到目前为止,我所拥有的:

for(let i = 0; i < mainObj.length; i++) {
    if(mainObj[i].colour == "pink") {
        const pink = [];
        pink.push(mainObj[i].colour);   
    }
}
for(设i=0;i

我遇到的问题是,目前它并没有将所有的粉色值放入一个粉色数组中,而是单独创建一个粉色数组,并向每个数组添加一个粉色值

你就快拿到了。简单地说,
constpink=[]在for循环之外,就像这样(我还将
push
更改为对象,而不仅仅是颜色)

let pink=[];
for(设i=0;i
以下是一个工作示例:

const mainObj=[
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“蓝色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“蓝色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
}
];
让粉红色=[];
for(设i=0;iconsole.log(粉红色)
您几乎已经得到了它。简单地说,
constpink=[]在for循环之外,就像这样(我还将
push
更改为对象,而不仅仅是颜色)

let pink=[];
for(设i=0;i
以下是一个工作示例:

const mainObj=[
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“蓝色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“蓝色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
}
];
让粉红色=[];
for(设i=0;i
Basic 您可以使用filter方法实现这一点,该方法将自动创建一个包含所需值的数组

let pinkArray = ;
console.log(pinkArray);

特定值/列 您还可以创建一个仅在对象中包含特定字段的数组:

 let pinkArray = mainObj.filter( e =>  e.colour == 'pink');
console.log(pinkArray);

var pinkArrayCopy = [];
for(i in pinkArray){
        let item = pinkArray[i];
    pinkArrayCopy.push({"colour": item.colour, "text": item.text});
 }

console.log(pinkArrayCopy);

更具功能性(新对象)

基本 您可以使用filter方法实现这一点,该方法将自动创建一个包含所需值的数组

let pinkArray = ;
console.log(pinkArray);

特定值/列 您还可以创建一个仅在对象中包含特定字段的数组:

 let pinkArray = mainObj.filter( e =>  e.colour == 'pink');
console.log(pinkArray);

var pinkArrayCopy = [];
for(i in pinkArray){
        let item = pinkArray[i];
    pinkArrayCopy.push({"colour": item.colour, "text": item.text});
 }

console.log(pinkArrayCopy);

更具功能性(新对象)

您只需创建一个通过主数组和颜色的回调,并用给定的颜色过滤主数组即可

const mainArr=[{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
}
],
filterByColor=(arr,color)=>arr.filter(a=>a.color==color);
var pink=滤光片颜色(主色调为“粉色”),
绿色=滤光片颜色(主“绿色”);
console.log('Pink:',Pink);

log('绿色:',绿色)您可以简单地创建一个通过主数组和颜色的回调,并简单地使用给定的颜色过滤主数组

const mainArr=[{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本:“文本”,
链接:“
}
],
filterByColor=(arr,color)=>arr.filter(a=>a.color==color);
var pink=滤光片颜色(主色调为“粉色”),
绿色=滤光片颜色(主“绿色”);
console.log('Pink:',Pink);
log('绿色:',绿色)您可以这样使用

const mainObj=[
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“粉红色”,
文本:“文本”,
链接:“
},
{
图片:“test_icon.jpg”,
颜色:“绿色”,
文本
mainObj.filter(item => item.colour=='pink').map(i =>i.colour))